我需要帮助调试以下代码块。只有当我尝试为平方[i ][ j]分配适当的(char)值时,此代码块才会给我一个分段错误错误。我该如何解决这个问题?
for(int i=0;i<sides;i++){
for(int j=0;i<sides;j++){
squares[i][j] = '';
}
}
我在嵌套的 for 循环之前使用以下代码声明了数组 squares[][]:
char **squares = new(nothrow) char*[sides-1];
for(int i=0; i < sides-1; i++){
squares[i] = new char[sides-1];
}
声明空字符串数组的更好方法是使用 String[]
不要忘记你在C++。在您的情况下,由于您看起来像是要做一个方形数组,因此如果大小已知,您可以使用std::array
或未知大小的std::vector
。现在对于严格的答案,在第二个循环中使用j而不是i。
for(int i=0;i<sides - 1;i++){
for(int j=0;j<sides - 1;j++){
squares[i][j] = '';
}
}
我强烈建议你尝试用字符串来看待你的问题,而不是重新发明轮子。(感谢NathanOliver&jsantander的帮助)
在您的声明中,尝试更改 i
char **squares = new(nothrow) char*[sides-1];
for(int i=0; i < sides; i++){
squares[i] = new char[sides-1];
}