在C中堆积腐败

在C中堆积腐败,第1张

概述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
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中堆积腐败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1223720.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存