C ++ - Exception non perdue lors de l'utilisation d'Atoi ()
Question
Lorsque vous utilisez ce code, il lance une exception d'écriture non perdue, ce que je suis presque certain que c'est à voir avec la fonction 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;
}
}
La solution
Utilisation:
char item[20];
char * item = ""
fait que l'élément pointe vers la mémoire en lecture seule - vous essayez de le modifier. Les pointeurs vers les littéraux de cordes sont mieux écrits comme const char * item = ""
- Ensuite, le compilateur s'assurera de ne pas le modifier. La raison char * item = ""
est légal est la compatibilité en arrière avec C.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow