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