我正在開發一個項目來製作一個單詞爭奪遊戲,目前正在將這些字母放在一個字符串數組中。目前沒有使用任何指針,我擔心這是原因,但我現在很困惑,因爲我的任務需要我使用結構。由於將struct傳遞給函數來編輯數組,導致C++ seg錯誤
任何幫助將不勝感激, 謝謝。
結構定義:
struct puzzle {
int cols;
int rows;
string puzzle[];};
loadPuzzle功能
void loadPuzzle(puzzle p){
char c;
p.puzzle[5];
for(int i = 0 ; i <p.rows ; i++){
p.puzzle[0] = " ";
for(int j = 0 ; j<p.cols ; j++){
iFS >> c;
if(!c=='\0')
p.puzzle[i][j]=c;
}
}
}
主要功能
int main(int agrc, char* args[]){
//setting default file name to make it easier for testing
string sourceFile = "testfile.txt";
puzzle p;
puzzle *puzz = &p;
//space left to add another do if need be
do{
cout << "please enter scramble name: ";
getline(cin, sourceFile);
cout << endl;
iFS.open(sourceFile.c_str());
if(!iFS.is_open()){
cerr << "Couldnt open file" << endl;
}
}while(!iFS.is_open());
p.cols = getPuzzleCols();
p.rows = getPuzzleRows();
cout << p.rows << p.cols;
loadPuzzle(p);
// displayPuzzle(p);
}
此數據成員無效C++:'字符串拼圖[];'。修復這個問題,你的一些問題可能會消失。 – juanchopanza
你的代碼是否可以編譯?由於上面提到的問題,我甚至無法編譯您粘貼的代碼。 –
'p.puzzle [5];'我剛纔說這樣做是否會編譯,但我想它是,它只是試圖讀取'p.puzzle [5]'(不存在)並丟棄結果。 – John3136