gpt4 book ai didi

c++ - 在 C++ 中通过 "new"重新分配内存

转载 作者:可可西里 更新时间:2023-11-01 16:25:59 25 4
gpt4 key购买 nike

关于 C++ 内存管理的小问题

如果我做如下操作:

pointer = new char [strlen(someinput_input)+1];

然后再次执行,strlen(someinput_input) 可能会返回不同的结果。

这是否会导致从先前的“new”语句分配的内存被保留?例如,每个 new 语句是从操作系统接收另一 block HEAP 内存,还是只是重新分配?

假设我做了一个最终的delete pointer[];,这会释放我通过new分配给那个指针的所有内存吗?

最佳答案

每次调用 new 必须 与对 delete 的相应调用相匹配.

顺便说一句,您可能应该考虑使用 std::string 甚至 std::vector<char> (取决于具体情况),而不是尝试自己分配 char 数组。这样您就再也不用担心了。

关于c++ - 在 C++ 中通过 "new"重新分配内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2557866/

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