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

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


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

最佳答案

如果仅保存指针,那么您还是库由谁负责清理?是否指出了在整个代码生命周期中都可以使用的内存?

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

您的循环将变成:

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

关于c++ - 保存数据指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10980026/

10-09 06:25