调试 C++ 中的分段错误



我需要帮助调试以下代码块。只有当我尝试为平方[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];
}

相关内容

  • 没有找到相关文章

最新更新