Macos mac上的EXC_错误访问错误
我正试图在Mac电脑上运行我的代码。它在Windows上总是运行良好我使用的是Microsoft Visual Studio,但当我在in-XCode上运行它时,以下代码有时会因EXC\u BAD\u访问错误而崩溃Macos mac上的EXC_错误访问错误,macos,exc-bad-access,Macos,Exc Bad Access,我正试图在Mac电脑上运行我的代码。它在Windows上总是运行良好我使用的是Microsoft Visual Studio,但当我在in-XCode上运行它时,以下代码有时会因EXC\u BAD\u访问错误而崩溃 board_t* board_initBoard() { board_t* newBoard = (board_t*)malloc(sizeof(board_t)); newBoard->grid = (square_t**)malloc(11 * sizeof
board_t* board_initBoard() {
board_t* newBoard = (board_t*)malloc(sizeof(board_t));
newBoard->grid = (square_t**)malloc(11 * sizeof(square_t));
for(int i = 0; i < 11; i++)
newBoard->grid[i] = (square_t*)malloc(11 * sizeof(square_t));
for(int i = 0; i < 11; i++) {
for(int j = 0; j < 11; j++) {
if(i * j * (10 - i) * (10 - j) == 0 && (i + j) % 10 > 2 && (i + j) % 10 < 8)
newBoard->grid[i][j] = black;
else if(i * j * (10 - i) * (10 - j) == 225)
newBoard->grid[i][j] = black;
else if(i == 5 && j == 5)
newBoard->grid[i][j] = king;
else if(i * j * (10 - i) * (10 - j) >= 576)
newBoard->grid[i][j] = white;
else if((i == 5 && j * (10 - j) == 21) || (j == 5 && i * (10 - i) == 21))
newBoard->grid[i][j] = white;
else if(i * (10 - i) + j * (10 - j) == 0)
newBoard->grid[i][j] = hostile;
else
newBoard->grid[i][j] = empty;
}
}
return newBoard;
}
该错误仅发生约1/3次,且始终发生在第二个for循环中,但发生在随机点。发生这种情况的原因是什么?什么是平方?您将网格分配为malloc11*sizeofsquare\u t,但它似乎应该是malloc11*sizeofsquare\u t*。添加星号有效。谢谢你,我不知道我怎么会错过那么久。平方t只是一个枚举。