我想我可能在這裏創建了內存泄漏:微妙的記憶泄漏,這是常見的做法?
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剛剛exectued首次程序已經運行。用戶選擇'1',這意味着buy()子例程由commandoptions()子例程執行。
buy()執行後,它再次調用commandoptions()。
第一個命令選項()有沒有返回?或者我只是做了內存泄漏?
如果我做了一個子程序,除了自己調用它什麼也不做,它將導致一個stackoverflow,因爲該子程序的其他'週期'永遠不會退出。我在做/接近這麼做嗎?
請注意,我在購買時使用了inline
關鍵字......這是否有所作爲?
我很高興地問我的教授,他似乎不可用。 :/
編輯:我不能相信它沒有想到要使用一個循環,但由於,我學到新的東西對我的詞彙!
C++。這是一個班級。謝謝,忘記標記了。 – user1833028 2013-05-07 15:48:52
我用你的語言標記了這個問題 – 2013-05-07 15:49:30
我沒有看到泄漏,甚至沒有發現泄漏。 – 2013-05-07 15:50:52