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

时间:2015-08-18 17:32:25

标签: 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<<str[i];i++;

        }

有没有人能指出我犯的错误是什么?

2 个答案:

答案 0 :(得分:0)

我从您的代码中了解到您正在将1D数组转换为2D数组。

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

从代码中我可以猜到,str []的问题是从超出范围读取值。

答案 1 :(得分:0)

'0'字面意思是数字的字符&#34;零&#34;。

标记C字符串结尾的nul-terminator为'\0'