好奇:为什么在while中申请的内存不会随程序结束而释放?在循环外申请的却会被自动释放,不会内存泄漏?
任何内存都会随着进程结束而释放,即便是所谓泄露的内存,泄露是针对程序来说的,操作系统层面,为某个进程分配的内存会在进程结束后全部被操作系统回收。
while中申请的内存不是超出代码块就自动释放了吗
无论你在哪里申请内存,只要是在堆上的内存,都不会自动释放。
malloc申请的内存是在堆空间,需要手动调用free进行回收。
数组(局部非静态)等空间是在栈上,只在代码块范围内有效,离开后就被释放了。
动态申请的内存,需要手动释放。