gpt4 book ai didi

c++ - 重新分配的性能

转载 作者:行者123 更新时间:2023-11-30 21:42:58 25 4
gpt4 key购买 nike

看起来realloc不会释放旧内存(成功或失败),而vector总是删除旧内存并分配新 block 。

我可以说对于 POD 数据,realloc 的性能比 vector 更好吗?

例如:

int *p = malloc(5 * sizeof(int));
...
int *new_p = (int*) realloc(p, 10 * sizeof(int));

旧内存p会在这里被释放吗?

最佳答案

Realloc 可以扩展实际分配(如果可能),也可以分配新 block 、复制旧 block 值并释放旧 block 。在第一种情况下,它具有更好的性能,但是,由于您事先不知道它将做什么,因此您必须假设指向旧 block 的指针将变得无效。

关于c++ - 重新分配的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23930037/

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