Code Bye

free产生的断点,本人知道不怪free,但本人实在查不出来,帮看一下

程序运行结果正确,在最后清理c结构体成员的char指针时断点。代码太散 ,本人截重点
包含一个char类型指针。
新建3个结构体

初始化结构体,并malloc空间给char指针。
a,b赋值后相加给c。
在之前测试过,横线此处调用函数重新分配空间,没有断点

横线是后来加上的另一个条件下分配空间
下图是ClearBN函数,中间有把老的区域free掉,然后分配新的。

最后输出结束,释放几个结构体内指针

接下来是几张断点时和汇编的图



以前也遇到过free产生中断,都是malloc空间和实际使用时越界了。这次特地申请了两杯数据大小的空间,也都memset NULL。请教堆空间还有那些细节。
解决方案

60

容本人问一句,ClearBN中memset(ClTar->numP,NULL,ClTar->size*sizeof(int)),不应该是sizeof(char)吗?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明free产生的断点,本人知道不怪free,但本人实在查不出来,帮看一下