C ++ - Eccezione non gestita quando si utilizza Atoi ()
Domanda
Quando si utilizza questo codice, lancia un'eccezione di scrittura non gestita, che sono quasi certo è a che fare con la funzione Atoi ().
while(true){
char* item = "";
cin >> item;
int numItem = atoi(item);
if(numItem){
if(numItem<=backpackSpaces){
equipItem(backpack[numItem]);
break;
}else{
cout << "No such item." << endl;
}
}else if(item == "back"){
cout << "Choose an option from the original choices. If you can't remember what they were, scroll up." << endl;
break;
}else{
cout << "Command not recognised." << endl;
}
}
. Soluzione
Uso:
char item[20];
.
char * item = ""
Make Item Point per la memoria di sola lettura - Stai cercando di modificarlo.I puntatori a stringhi letterali sono scritti meglio come const char * item = ""
- quindi il compilatore farà in modo che non lo modifichi.La ragione per cui char * item = ""
è legale è la compatibilità all'indietro con c.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow