在讀取文件,它的方便通過矢量分配內存:如何去除矢量容器並返回一個數組?
someType* readCSV() {
std::vector<someType> vec;
someType x;
...
while(fscanf(f, parser, &x) != EOF) {
vec.push_back(x);
getc(f); // skip comma
}
return &vec[0];
}
但我只是想返回正常陣列(我使用CUDA的事後,其API使用指針)。
所以問題是vec
是否在函數調用結束時超出範圍將會銷燬它所包含的數據,以及是否有任何我可以保留的數據。
'vec'定義在哪裏? – FDinoff 2013-05-12 01:48:37
您可以隨時在'readFile'之外分配'vector'並將其作爲參數傳入。 – 2013-05-12 01:52:35
的確如此,但從封裝破壞的角度來看,這有點麻煩。用戶不應該知道該功能是使用矢量實現的。 – mchen 2013-05-12 01:55:20