此代碼的工作,只有當我在9號線取消註釋C++ for循環不正常
//else return "null";
,但是這不是我所需要的。我試圖更換該行
else continue;
但它也不起作用。 「currentCommand」是一個c風格的字符串。
std::string Parser::dest(){
//Determines whether C-command has a dest mnemonic
bool hasDest = false;
for (int i=0; i<strlen(currentCommand); i++){
if (currentCommand[i] == '='){
hasDest = true;
break;
}
//else return "null";
}
if (hasDest == false) return "null";
std::string destm;
char temp;
int index = 0;
temp = currentCommand[index];
while (temp != '='){
destm += temp;
index++;
}
return destm;
}
我應該當我調用這個函數來得到一個輸出,並且我得到它,當我取消//else return "null"
..但它不是我所需要的輸出。但是,當我離開這行評論,我沒有得到任何輸出,並在一段時間後出現此錯誤:
終止叫做拋出「的std :: bad_alloc的」
的實例以後有什麼():STD: :bad_alloc的
1Aborted(核心轉儲)
如果* currentCommand的第一個字符*不是''='',則返回「null」。可能不是你想要的。如果它*是*你想要的,那麼你肯定有一種奇怪的方式來檢查數組中的第一個元素...... –
A)爲什麼你將c風格的字符串與std :: string混合使用? B)什麼「不起作用」? C)預期的行爲是什麼? – Borgleader
你想用這個循環做什麼 –