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

标签 c arrays

我用过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/

相关文章:

c - 在 Linux 中尝试使用 ltoa 编译代码时抛出错误

c - 这个有错误的 C 代码有什么问题?

c - 不断收到堆栈粉碎错误

Javascript 数组值未定义......我该如何测试

java - 我正在尝试创建一种方法,将车辆的 arrayList 转换为数组并返回该数组

ios - 如何将 NSArray 转换为 Set?

c - 使用指针的字符串连接中的段错误

带增量的 C 循环

Php 数组搜索不起作用

javascript - 查询 JavaScript 父子对象