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

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

60

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

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明free产生的断点,本人知道不怪free,但本人实在查不出来,帮看一下
喜欢 (0)
[1034331897@qq.com]
分享 (0)