我创建了一些实用程序
帮我处理一个动态列表的管理。在我
用于处理列表中元素的删除,如果有
添加的元素存储在堆栈中,当我调用 free()
达到了未定义的行为。
在网上冲浪我发现
没有办法确定一个指针是否指向堆栈
内存或堆内存。
所以我认为要解决这个问题我必须处理free()
产生的错误。当我调用 free()
时,有没有办法处理该异常?
最佳答案
不。
您不需要为非堆指针调用 free()
。最简单的方法是让分配内存的人负责释放它。 IE。您的实用程序负责管理它们分配的任何内存,但其他人负责管理传递给您的实用程序的内存。