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

使用malloc申请一段内存,在使用的时候没有任何问题,但是在执行free使程序直接终止了,最后发现使写数据时越界了,使用malloc分配内存时会多分配一些内存用于存储申请到的内存信息,在free的时候会读取这段内存中的信息,写越界会导致这段信息被覆盖,使free无法正确的释放内存,导致程序出错。出现这种情况的原因有很多,我出现这个问题的原因是在为结构体分配内存时使用的是指针类型,但是却被当作结构体来使用,这个问题在编译的时候是不会有提示的,很难排查,所以平时编码的时候还是要多注意。

你可能感兴趣的:(c语言调用free,提示已触发了一个断点。)