二维数组赋值中的 C++ 分段错误
C++ segmentation error in 2D array assignment
我在以下代码中收到分段错误。我不太了解这个错误。
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++;
}
谁能指出我犯的错误是什么?
我从你的代码中了解到你正在将一维数组转换为二维数组。
在这种情况下,您的一维数组的最大索引应大于或等于您对二维数组的行 * 列的要求。
从代码中我可以猜到,str[] 的问题是从越界读取值。
'0'
字面上是数字 "zero".
的字符
标记 C 字符串结束的空终止符是 '[=11=]'
。
我在以下代码中收到分段错误。我不太了解这个错误。
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++;
}
谁能指出我犯的错误是什么?
我从你的代码中了解到你正在将一维数组转换为二维数组。
在这种情况下,您的一维数组的最大索引应大于或等于您对二维数组的行 * 列的要求。
从代码中我可以猜到,str[] 的问题是从越界读取值。
'0'
字面上是数字 "zero".
标记 C 字符串结束的空终止符是 '[=11=]'
。