0

関数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のディープコピーを実行する必要がありますか?それとも上記で十分ですか?

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 に答える