程序运行结果正确,在最后清理c结构体成员的char指针时断点。代码太散 ,本人截重点
包含一个char类型指针。
新建3个结构体
初始化结构体,并malloc空间给char指针。
a,b赋值后相加给c。
在之前测试过,横线此处调用函数重新分配空间,没有断点。
横线是后来加上的另一个条件下分配空间
下图是ClearBN函数,中间有把老的区域free掉,然后分配新的。
最后输出结束,释放几个结构体内指针
接下来是几张断点时和汇编的图
以前也遇到过free产生中断,都是malloc空间和实际使用时越界了。这次特地申请了两杯数据大小的空间,也都memset NULL。请教堆空间还有那些细节。
横线是后来加上的另一个条件下分配空间
下图是ClearBN函数,中间有把老的区域free掉,然后分配新的。
最后输出结束,释放几个结构体内指针
接下来是几张断点时和汇编的图
以前也遇到过free产生中断,都是malloc空间和实际使用时越界了。这次特地申请了两杯数据大小的空间,也都memset NULL。请教堆空间还有那些细节。
解决方案
60
容本人问一句,ClearBN中memset(ClTar->numP,NULL,ClTar->size*sizeof(int)),不应该是sizeof(char)吗?