二维数组赋值中的C++分割误差

二维数组赋值中的C++分割误差,c++,segmentation-fault,memory-segmentation,C++,Segmentation Fault,Memory Segmentation,我收到以下代码中的分段错误。我不太明白这个错误 cout<<"r="<<r<<"c="<<c<<endl; int i=0,k=0; for(int k=0;k<r;k++) for(int j=0;j<c,str[i]!='0';j++) { (newl[k][j]=str[i]); //shows segmentation error on debugging

我收到以下代码中的分段错误。我不太明白这个错误

cout<<"r="<<r<<"c="<<c<<endl;
int i=0,k=0;
for(int k=0;k<r;k++)
    for(int j=0;j<c,str[i]!='0';j++)
        {
         (newl[k][j]=str[i]);  //shows segmentation error on debugging
          cout<<str[i];i++;

        }

有人能指出我犯了什么错误吗?

我从您的代码中了解到,您正在将一维数组转换为二维数组

在这种情况下,1D数组的最大索引应大于或等于,具体取决于您对2D数组的行*列的要求

从代码中我可以猜到,str[]的问题是从越界读取值。

'0'实际上是数字0的字符


标记C字符串结尾的nul终止符是“\0”。

能否显示newl和str的代码?如果不查看所依赖变量的值设置为什么,就很难判断出错误。欢迎使用堆栈溢出!请回答你的问题,或者为那些麻烦的家伙们道歉,结果我犯了一个草率的错误。第二个for循环中的条件是要检查null“\0”,我忘了加反斜杠。谢谢你指出了那个愚蠢的错误。这就是不休息工作所能做到的!!!:p只是从我的脑海中溜走了。