gpt4 book ai didi

c - 请告诉我这段 C 中二维动态数组代码中的错误

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

我用过this web link as reference .

以下代码生成此调试错误: enter image description here

我找不到错误。请帮助我。

#include <stdio.h>
#include <stdlib.h>
#include <process.h>

#define ROWS 3
#define COLS 5

main()
{
char ** my2dArray = NULL;
int i=0;
int j=0;

my2dArray = (char**) malloc(sizeof(char) * ROWS);

for(i=0 ; i<ROWS ; i++)
{
my2dArray[i] = (char*) malloc(sizeof(char) * COLS);
}

for(i=0 ; i<ROWS ; i++)
{
for(j=0 ; j<COLS ; j++)
{
my2dArray[i][j] = (i + 1) * (j + 1);
}
}

for(i=0 ; i<ROWS ; i++)
{
for(j=0 ; j<COLS ; j++)
{
printf("%d, ", my2dArray[i][j]);
}

printf("\n");
}

for(i=0 ; i<ROWS ; i++)
{
free(my2dArray[i]);
}

free(my2dArray);

system("PAUSE");
}

最佳答案

您正在 my2dArray[i] 中存储 char* 类型的项目:

my2dArray[i] = (char*) malloc(sizeof(char) * COLS);

char 是 1 个字节,char* 是 4 或 8 个字节,所以您目前没有为 my2dArray 分配足够的内存,将其更改为:

my2dArray = (char**) malloc(sizeof(char*) * ROWS);

关于c - 请告诉我这段 C 中二维动态数组代码中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8457572/

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