0

我有一个函数uint32_t* getDataP(uint idx);,我无法访问该函数的代码。我需要实现一个代码,它使用不同的idx参数调用函数并将结果保存在向量中。将它保存在vector<uint32_t>or中的更好方法是什么vector<uint32_t*>?如果我决定将其另存为vector<uint32_t*> savedData,则以下实现是否可以?:

for (uint i = 0; i < 10;++ i) {
   dataP = getDataP(i);
   savedData.push_back(dataP);
}

我需要执行 dataP 的深层复制吗?或者以上就足够了?

4

1 回答 1

2

如果你只保存指针,谁来负责清理,你还是图书馆?指向的内存是否在代码的整个生命周期内都可用?

我会说使用vector<uint32_t>,因为它更安全,但我真的不知道你的应用程序在做什么。

你的循环会变成:

for (uint i = 0; i < 10;++ i) {
   dataP = getDataP(i);
   savedData.push_back(*dataP);
}
于 2012-06-11T12:25:54.813 回答