我需要调试以下代码块的帮助。仅当我尝试将适当的(char)值分配给squares [i] [j]时,此代码块才给我一个分段错误错误。我怎样才能解决这个问题?

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] = '';
    }
}

强烈鼓励您尝试着眼于Strings的问题,而不是重新发明轮子。
(感谢NathanOliver和jsantander的帮助)

08-26 20:02