malloc,realloc,calloc,strdup等等都是动态从堆里面分配的内存,他不会自动释放。在这里需要记录分配的地址,以便以后释放。如果不进行释放,会造成内存泄漏。
但是还有一些隐性的更应该注意,比如fopen要和fclose匹配,
另外,就是查看函数说明,看看返回的指针是否要free。
malloc和new都是在堆上进行的动态内存操作。
所以要自己用free或delete来释放那块内存空间
教你一招,只要是你自己规定空间大小的,都要释放就行了!
全局变量在程序运行完成后会自动释放
局部变量在函数运行完成后会自动释放
堆是人为申请的,也需要人为的销毁!
8849

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



