我有一个功能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/