ここでメモリリークを作成している可能性があると思います:
void commandoptions(){
cout<< "You have the following options: \n 1). Buy Something.\n 2).Check you balance. \n3). See what you have bought.\n4.) Leave the store.\n\n Enter a number to make your choice:";
int input;
cin>>input;
if (input==1) buy();
//Continue the list of options.....
else
commandoptions(); //MEMORY LEAK IF YOU DELETE THE ELSE STATEMENTS!
}
inline void buy(){
//buy something
commandoptions();
}
プログラムが実行されて初めて commandoptions が実行されたとしましょう。ユーザーは「1」を選択します。これは、buy() サブルーチンが commandoptions() サブルーチンによって実行されることを意味します。
buy() の実行後、再度 commandoptions() を呼び出します。
最初の commandoptions()が返されることはありますか? それとも、メモリリークを起こしただけですか?
自分自身を呼び出すだけのサブルーチンを作成すると、そのサブルーチンの他の「サイクル」が終了しないため、スタックオーバーフローが発生します。私はここでそれをやっている/やろうとしていますか?
inline
購入時にキーワードを使用したことに注意してください...違いはありますか?
喜んで教授に尋ねたいのですが、彼は都合がつかないようです。:/
編集:ループを使用することは私には思い浮かばなかったとは信じられませんが、おかげで、用語について何か新しいことを学びました!