int main (){ int * b; b = (int*) malloc (1); *b=110000; free (b); return 0;}
为什么堆腐败发生在free(b);?
IMO,堆损坏已经发生在* b = 110000;.
解决方法 malloc()的参数是要分配的字节数.你需要使用:b = (int*) malloc(sizeof(int));
你已经分配了一个太小的块,然后写了比你分配的更多的字节,这会覆盖块旁边的簿记信息,从而破坏堆.
总结以上是内存溢出为你收集整理的在C中堆积腐败全部内容,希望文章能够帮你解决在C中堆积腐败所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)