C语言free报错
来源:互联网 发布:怎样化妆 知乎 编辑:程序博客网 时间:2024/06/05 09:16
长话段说:最近写算法,matlab转C,然后在C中申请了一个空间,用来存放数据如下:
double *J1 = (double*)calloc(180 / step, sizeof(double));
然后接下来开始对J1进行赋值:
int k=0;for(int m=1;m<=180;m+=step){ k+=1; J1[k]=......}但是当我free的时候,开始报错,楼主很惊讶,为啥呀,我规规矩矩申请,那我规规矩矩释放就不行了?然后搜到一篇博客:大神博客地址,里面讲解了为什么会报错。其实在我们申请空间的时候,程序会保留我们申请空间的一些信息比如空间大小,当我们free的时候,会调用这些信息。不过如果我们改动了信息,free的时候就会失败。
那么很明显,我这是改了信息了,哪改了呢,如果看程序就会发现,其实我的J1已经越界了,因为我的k+=1写的地方写错了,所以这就相当于改动了我们之前所申请的信息,造成free失败,如果把k+=1放在J1[k]之后,就不会发生这个问题,free就会成功。这里当作一个教训吧,写C的时候切记不要数组越界,内存管理好麻烦。
阅读全文
0 0
- C语言free报错
- C语言malloc\free
- C语言malloc/free
- C语言中 malloc/free
- C语言中的free函数
- C语言中free函数
- C语言中free()出错
- c语言malloc和free
- C语言malloc和free
- C语言中的free()函数
- C语言malloc和free
- C语言中的free函数
- C与语言报错
- C语言Free时报错HEAP CORRUPTION DETECTED
- 深入理解C语言中的free函数。
- C 语言 malloc 和 free函数浅谈
- C语言malloc和free【转载】
- C语言中malloc与free
- 手机H5页面滑动事件
- IOS旗下基于FFmpeg开发的开源流媒体播放器汇总推荐
- java中连接数据库
- 【备忘】传智播客最新大数据第3期实战培训完整版视频教程
- delphi chrome cef3 控件学习笔记 (四)
- C语言free报错
- myBatis使用collection
- 物联网平台机智云Android开源框架入门之旅(三)分析设备详情界面的中如何发送各种指令到云端。
- poj 1990 MooFest(树状数组)
- Spring MVC中只返回数据不跳转页面
- 套接字和在标准I|O之间的转化
- 剔除集合中的不符合条件项,使用迭代器和remove函数。
- GCD 简述、使用等详解
- Hibernate ilike中转义字符的处理