gpt4 book ai didi

c - 试图理解c中NULL的内存泄漏

转载 作者:行者123 更新时间:2023-11-30 14:33:49 25 4
gpt4 key购买 nike

我创建了一个小测试,以创建内存泄漏并使用leaks命令在终端中测试泄漏。现在我遇到了 NULL 的奇怪行为。那么有什么解释为什么另一个代码泄漏而另一个没有泄漏呢?他们真的不一样吗?


int main(void)
{
char *ptr;
char *btr;

ptr = NULL;
btr = (char*)malloc(4);
btr = ptr;
while (1)
;
return (0);
}
// LEAKS

int main(void)
{
char *btr;

btr = (char*)malloc(4);
btr = NULL;
while (1)
;
return (0);
}
//NO LEAKS ?? why

最佳答案

如果有的话,我会冒险你打开了编译器优化。在第二个示例中,这可能会忽略该行

btr = (char*)malloc(4);

在编译期间,您立即将结果设置为 NULL。

关于c - 试图理解c中NULL的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59141766/

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