C++语言定义二维字符串的问题

这个程序是要判断括号对是否匹配的,但是执行到scanf("%s",pour[i]);提示了错误,所以就简化了main函数,只把出现错误的写了出来,让大神看看是哪里出来问题。
图片说明

错误提示如下。通过设置的断点表明,该错误是在执行了scanf("%s",pour[i]);之后,要往下执行的时候出现的,希望各位老师不吝赐教。
图片说明

1)pour[i]没有分配空间。
2)scanf 不能直接调用 string 变量。

 for(int i=0;i<a;i++)
{
    pour[i].resize(100);
    scanf("%s",&pour[i][0]);

贴完整的程序到codepad.org或者用</>按钮。贴图怎么帮你

 int main(void){
int a;
scanf("%d",&a);
    string *result = new string[a];//记录判断结果为yes或者no
    string *pour = new string[a];//记录初始输入的括号对

for(int i=0;i<a;i++)
{
scanf("%s",pour[i]);
        if(pour[i][0] == ']' || pour[i][0] == ')')
        {
            result[i] = "No";
        }
        else
        {
            result[i] = "Yes";
        }
}

用cin读取到string中。