- 已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
昨天关门了。
Improve this question
我写了这个程序,基本上是用指针来分配一个字符矩阵,代码如下:
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()过程的最后一条指令时出现了堆块错误。我只是不知道是什么触发了这个错误。提前感谢。
1条答案
按热度按时间dtcbnfnu1#
错误很简单,我想这是我今天早上没有集中注意力的最后证明。
在过程create_bitmap()中,malloc指令应该是这样写的:
现在,这个指令将分配n个char* 指针,而不是只分配一个char。