c语言调用free,提示已触发了一个断点。

在用c语言写数据结构的链表的时候,执行也没有什么大错,逻辑也是对的,但是一道free函数会自动触发一个断点。如图:

这个断点产生的原因是由于分配的内存太小了在使用的时候没有任何问题,但是在执行程序的时候,遇到free函数便直接终止了,最后发现使写数据时越界了,使用malloc分配内存时会多分配一些内存用于存储申请到的内存信息,在free的时候会读取这段内存中的信息,写越界会导致这段信息被覆盖,使free无法正确的释放内存,导致程序出错。出现这种情况的原因有很多,我出现这个问题的原因是在为结构体分配内存时使用的是指针类型,但是却被当作结构体来使用。这种错误的类型是不会报错的。

这个地方出现了错误,本来是打算分配一个结构型,结果分配了一个指针类型的,由于内存分配的太小,所以产生了错误。

应该这样改:

相关推荐
island131417 分钟前
CANN GE(图引擎)深度解析:计算图优化管线、内存静态规划与异构任务的 Stream 调度机制
开发语言·人工智能·深度学习·神经网络
坚持就完事了21 分钟前
Java中的集合
java·开发语言
魔芋红茶25 分钟前
Python 项目版本控制
开发语言·python
云小逸41 分钟前
【nmap源码解析】Nmap OS识别核心模块深度解析:osscan2.cc源码剖析(1)
开发语言·网络·学习·nmap
冰暮流星41 分钟前
javascript之二重循环练习
开发语言·javascript·数据库
风指引着方向42 分钟前
自定义算子开发入门:基于 CANN op-plugin 的扩展实践
开发语言
Fairy要carry1 小时前
面试-GRPO强化学习
开发语言·人工智能
风指引着方向1 小时前
图编译优化全链路:CANN graph-engine 仓库技术拆解
c语言
Liekkas Kono1 小时前
RapidOCR Python 贡献指南
开发语言·python·rapidocr
张张努力变强1 小时前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl