Pergunta

Quando utilizar este código, ele lança um não processada escrita de exceção, que eu estou quase certo que é para fazer com o atoi() função.

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;
                    }
}
Foi útil?

Solução

Utilização:

char item[20];

char * item = "" torna item aponte para memória somente de leitura - você está tentando modificá-lo.Ponteiros para literais de seqüência de caracteres são melhores escrito como const char * item = "" - em seguida, o compilador irá certificar-se de que você não modificá-lo.A razão char * item = "" é legal, é a compatibilidade com o C.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top