gpt4 book ai didi

C++ 内存泄漏 : are dynamically created arrays removed on leaving a function call?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:05:23 24 4
gpt4 key购买 nike

所以我有一个创建动态数组的函数,然后在离开该函数之前删除该数组(正如我认为的那样),但是我在 VS2008 中收到“检测到堆损坏”警告。如果我删除取消分配内存的行,一切正常:

void myFunc()
{
char* c = new char[length];
memset(c, 0, length);

//.. do somsething with array

delete[] c; //this line throws an error??
}

谢谢你的建议

最佳答案

很可能你正在做其他不好的事情(比如缓冲区不足/溢出)并在此时损坏堆,但直到你调用 delete[] 并尝试解释现在损坏的堆结构时才会检测到它。

如果您需要更多帮助,请发布“做点什么”部分。

关于C++ 内存泄漏 : are dynamically created arrays removed on leaving a function call?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2029794/

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