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;
                    }
}
.

È stato utile?

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
scroll top