c语言使用free函数不报错是不是就是释放内存成功
3个回答
展开全部
因为free函数没有返回值,如果运行时没有报错,那么内存就可以认为是释放成功了。
一般我们free的时候参数只有三种情况
1. 参数为NULL,这时候free不会执行任何动作,也不会造成崩溃
2. 参数为一个动态申请的内存指针,此时,能顺利执行,不会有异常发生
3. 参数为一个不能被free的内存指针(包括静态数据指针、野指针等),此时释放的时候就会报错,windows下面可能会报某某某内存不能为read,linux下可能会报pointer being freed was not allocated
因此,只要你在运行过程中没出错,那么就可以保证free是成功了的。
一般我们free的时候参数只有三种情况
1. 参数为NULL,这时候free不会执行任何动作,也不会造成崩溃
2. 参数为一个动态申请的内存指针,此时,能顺利执行,不会有异常发生
3. 参数为一个不能被free的内存指针(包括静态数据指针、野指针等),此时释放的时候就会报错,windows下面可能会报某某某内存不能为read,linux下可能会报pointer being freed was not allocated
因此,只要你在运行过程中没出错,那么就可以保证free是成功了的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询