我試圖用一個單獨的函數從文件中讀取一些數據值;我收到兩個錯誤(我沒有使用C++在很長一段時間......):返回一個數組作爲指針
double * FREAD(std::string fpath){
std::string line;
double * params = new double[14];
std::ifstream parameters (fpath);
if (parameters.is_open())
{
for (int b = 0; b < 14; b++) {
parameters >> line >> params[b];
}
}
parameters.close();
return params;
}
拋出
錯誤C2556: '雙* FREAD(的std :: string)' : 'FREAD'::重載函數僅通過從返回類型 '雙FREAD(的std :: string)'
和
錯誤C2040的區別 '雙*(的std :: string)'與'double(std :: string)'有間接的級別差異
第二個問題是從我調用main函數的那一行引發的。
double * param = FREAD(parampath);
錯誤C2440:「初始化」:無法從「雙師型」作爲一種價值指向的雙重轉換爲「雙*」
如果我不定義PARAM的,我得到相反的類型不匹配錯誤...
我的理解是,我應該返回一個指針,它指向我的子函數創建的數組的第一個值,並使用它來處理數據。但當我在main中調用函數時,我似乎無法拉出這個值。
只需返回一個'std :: vector'或一個'std :: array '。 –
juanchopanza
這個刪除在返回後會被叫做*嗎? – ChiefTwoPencils
@BobbyDigital當然不是,但至少滿足編譯器,...... –