0

私はコーディングが初めてで、レトロなスタイルのゲームを作成しようとしています。アイデアは、ゲーム内の各正方形を文字列の一部にすることです。これまでに取得したコードは次のとおりです。

#include <iostream>
#include <stdlib.h>

using namespace std;

int main(){
   int a,b=0;
   char s[9][77]={};

   while (true) {
     s[a][b]={'_'};
     b+=1;
     if (b>77){
        a+=1;
        b=0;
     }
     if (a>9){
        a=0;
        b=0;
        break;
     }
   }
   s[0][0]={'H'};

   cout << "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@";
   cout << "@" <<s[0][0]<<s[0][1];

   return 0;
}

約4秒後に実行すると、次のようになります。

program.exe が動作を停止しました。

エラーが発生したときに次のようになります。

msg is closed (in cmd ):プロセスが返されました -1073741819 (0xc0000005)

コンパイル時に次のようになります。

警告: 拡張イニシャライザ リストは -std=c++11 または -std=gnu++11 [デフォルトで有効] でのみ使用可能

ps: コーディングのスニペットは、エラーが発生しないことをテストするためのものです。

4

3 に答える 3

1

問題はおそらくここにあります:

int a,b=0;

ここでは 2 つの変数を宣言していますが、そのうちの1 つだけを初期化しています。これは、 の値aが未定義であることを意味し、eg での使用s[a][b]は未定義の動作です。

于 2013-09-27T11:42:51.023 に答える