【发布时间】:2023-02-01 19:26:32
【问题描述】:
我编写了这个程序,基本上使用指针分配一个字符矩阵。 这是代码:
char **bitmap;
void create_bitmap() {
int i;
int columns = (int) ceil(m / 8) + 1;
bitmap = (char **) malloc(sizeof(char) * n);
for (i = 0; i < n; i++)
bitmap[i] = (char *) calloc(columns, sizeof(char));
}
void free_bitmap() {
int i;
for (i = 0; i < n; i++) {
free(bitmap[i]);
}
free(bitmap);
}
在 free_bitmap() 过程的最后一条指令处出现堆块错误。 我只是不知道是什么触发了错误。 提前致谢。
【问题讨论】:
-
malloc(sizeof(char) * n);=>malloc(sizeof(char *) * n); -
您的代码不完整。请edit你的问题并显示minimal reproducible example。另见airbus-seclab.github.io/c-compiler-security
标签: c matrix memory-management malloc free