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