gpt4 book ai didi

c++ - 在 Visual Studio 中模拟一个简单的内存泄漏,结果有点困惑

转载 作者:太空宇宙 更新时间:2023-11-04 15:26:07 27 4
gpt4 key购买 nike

这是一个非常简单的问题(或者至少乍一看)。假设我们有以下过程:

void procedure(void)
{
int x = new int;
x=42;
}

当我在我的程序中调用这个过程时,它应该会导致所谓的内存泄漏,对吗?我在处理一个小项目时遇到过这样的错误,然后编译器输出如下内容:检测到内存泄漏。转储内存块...现在我尝试模拟内存泄漏并查看编译器输出的内容,但它根本没有提示(我使用 Visual Studio)。
是否真的存在内存泄漏,这是我的问题。

最佳答案

您将无法调用它,因为它无法编译。大概你的意思是这样的:

void procedure(void) { 
int *x = new int;
*x = 42;
}

是的,这有内存泄漏,我希望 VC++ 会提示(在 Debug模式下编译时)。在 Release模式下,它通常不会检查泄漏,但即使它检查了,如果编译器检测到这些都没有任何实际效果,我也不会感到惊讶,所以调用它被完全优化(从而消除了内存泄漏)。我完全不确定会发生这种情况,但如果发生了,也不足为奇。

关于c++ - 在 Visual Studio 中模拟一个简单的内存泄漏,结果有点困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7947632/

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