gpt4 book ai didi

c - 简单的 C 程序在 Windows 上崩溃

转载 作者:行者123 更新时间:2023-11-30 20:11:57 24 4
gpt4 key购买 nike

我写了一个简单的c程序来模拟内存泄漏。但当我尝试运行它时它崩溃了。

#include <stdio.h>
#include <stdlib.h>

void memory_leak(void);

int main()
{
memory_leak();
return EXIT_SUCCESS;
}

void memory_leak()
{
int i = 100;
memory_leak();
}

我使用 MinGW gcc 编译器。

最佳答案

您正在产生堆栈溢出 - 通过递归调用您的函数内存泄漏

您的memory_leak版本分配一个本地(“堆栈”)变量,该变量将在函数退出时释放/销毁/解除分配。

要真正造成内存泄漏,您需要从堆中分配内存(例如使用newmalloc)。

void* memory_leak()
{
return malloc(10);
}

[不要在 memory_leak 内无条件调用 memory_leak。]

关于c - 简单的 C 程序在 Windows 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38357873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com