当程序员先前分配的一块内存时,就会发生内存泄漏。那么程序员就不能正确地释放它。该内存不再被程序使用。所以那个地方就被无缘无故地保留了。这就是为什么这被称为内存泄漏。
对于内存泄漏,某些内存块可能被浪费了。如果系统有足够的内存,在这种情况下这也可能会降低性能。
void my_func() { int *data = new int; *data = 50; }
这里的问题是*数据指针永远不会被删除,因此内存被浪费。
#include <stdio.h> main(void) { auto int my_fun(); my_fun(); printf("Main Functionn"); int my_fun() { printf("my_fun functionn"); } printf("Done"); }
my_fun function Main Function Done