gpt4 book ai didi

使用函数为矩阵赋值时 C 程序崩溃

转载 作者:太空宇宙 更新时间:2023-11-04 06:53:31 25 4
gpt4 key购买 nike

我试图制作一个二维矩阵,其大小由用户选择的两个维度(即 dims[] 值是通过 scanf 分配的),然后对其进行初始化。

当我尝试使用函数将值分配给 char 矩阵时,我的程序可以编译但崩溃。
我想这与列数(第二个括号)以及我使用数组定义矩阵二维大小的事实有关。该问题仅在分配值时出现(而不是在打印时)。

int main()
{
int dims[2] = {3,4};
//^The exact values are besides the point, chose some at random
char board[dims[0]][dims[1]];
initialize_board(board, dims);
}

函数如下所示(MAX_SIZE #定义为 25):

void initialize_board(char board[][MAX_SIZE], int board_side[])
{
for(int i=0; i<board_side[0]; i++)
{
for(int j=0; j<board_side[1]; j++)
{
board[i][j]='-';
}
}
}

函数声明如下:

void initialize_board(char board[][MAX_SIZE], int board_side[]);

我应该怎么做才能解决这个问题?

最佳答案

你的板子尺寸是3*4。
您的函数在 start 后面的 25 个条目的倍数处访问该小板(对于内部循环中的 j>0),即条目号 3*4 后面的大约 13 个条目,即索引 11 处最后一个有效条目后面的 14。

关于使用函数为矩阵赋值时 C 程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47975910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com