系统提示的错误是内存泄露,排行了好久找了好久,最后在书上才发现原来退出程序最后,要调用CloseSTDLIB()进行资源清理;
SDK 中是这样解释的:
所有应用程序分配的资源必须在程序结束时清理干净。在模拟器上,使用 debug 编译生成,没有这么做会由 __UHEAP_MARKEND 宏产生一个严重错误。
因为 STDLIB's DLL 在线程本地存储(thread-local storage)中分配的数据(结构体 _reent)在环境被销毁时不会被自动清理,它必须由 STDLIB 的使用者进行清理(CloseSTDLIB())。
使用这个函数,应在工程中包含 reent.h 文件。
本文介绍了一种解决内存泄露问题的方法:在程序结束时调用CloseSTDLIB()进行资源清理。文章解释了为何需要这样做,特别是在使用STDLIB的环境下,以避免由__UHEAP_MARKEND宏产生的严重错误。
&spm=1001.2101.3001.5002&articleId=5709638&d=1&t=3&u=ea565d57d0684c76ae6afd33b01a831c)
2080

被折叠的 条评论
为什么被折叠?



