gpt4 book ai didi

c++ - vector 中的数据什么时候释放?

转载 作者:行者123 更新时间:2023-12-01 15:08:21 24 4
gpt4 key购买 nike

我有以下代码

void test(MyDataType * t)
{
vector<MyDataType> tmp;
tmp.push_back(MyDataType(2,24));
t = tmp.data();
}

void test2()
{
MyDataType * t;
test(t);
// Do some stuff with the data pointed by t
}

何时将释放存储在 vector 中的数据? test函数调用结束后,它超出范围。那是对的吗?

最佳答案

When will the data stored in the vector freed? It is out of scope after the test function call end. Is that correct?



是,对的。

如果要从该函数返回指针,它将是一个悬空指针。

但是,您的代码中还有一个细微的问题:您按值传递了 t指针,因此test内的赋值对 t中的 main无效。如果在 t中使用 main,则可能会出现段错误,这不是因为 vector 已经超出范围,而是因为您从未在 t中初始化 main

关于c++ - vector 中的数据什么时候释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58860891/

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