0

このコードを使用すると、未処理の書き込み例外がスローされます。これは、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;
                    }
}
4

1 に答える 1

6

使用する:

char item[20];

char * item = ""アイテムが読み取り専用メモリを指すようにします-変更しようとしています。文字列リテラルへのポインタは、次のように記述した方が適切ですconst char * item = ""。その場合、コンパイラはそれを変更しないようにします。正当な理由char * item = ""は、Cとの下位互換性です。

于 2011-03-26T15:18:15.987 に答える