Pregunta

Cuando utilice este código, lanza una excepción de escritura sin control, que casi estoy seguro es hacer con la función 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;
                    }
}

¿Fue útil?

Solución

Uso:

char item[20];

char * item = "" hace que el punto del artículo sea la memoria de solo lectura, está tratando de modificarlo.Los punteros para literales de cuerdas están mejor escritos como const char * item = "", entonces el compilador se asegurará de que no lo modifique.La razón por la que GeneracDicetAnDode es legal es la compatibilidad atrasada con c.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top