當我嘗試運行此代碼時,它崩潰。沒有錯誤消息。當程序編譯和運行,它只是顯示了Windows 7的消息,「這一計劃已停止工作。」:動態分配的字符串數組
void readGameFile(string ** entries, int * num_entries, string ** story, int * num_lines)
{
ifstream madlib("madlibs1.txt");
string line;
getline(madlib, line);
*num_entries=stoi(line);
*entries=new string [*num_entries];
for (int i=0; i<*num_entries; i++)
{
getline(madlib,*entries[i]);
}
我做了一些測試,它似乎分配entries[0]
的值,然後崩潰時試圖分配entries[1]
的值。我被迫使用這個函數名稱,特別是那些函數參數和參數類型。我也可能不會使用malloc,vector或其他我見過的答案。
您可以檢查使用['IS_OPEN ()'](http://en.cppreference.com/w/cpp/io/basic_ifstream/is_open)如果文件已經打開? –
我用各種方式檢查了文件打開。它能夠從文件中讀取事物。這似乎與我動態分配的方式有關。現在它給了我一個調試錯誤,並說「中止已被調用。」 – user2889285
'for(int i = 0; i <* num_entries; i ++)''num_entries'是一個指針。我想你打算在循環條件中使用'* num_entries' –