|
> char *hand[]={"グー","チョキ","パー"};
これは、(char *)型の配列なので、問題なく初期化されるはずですが。
> char hand[3][5]={"グー","チョキ","パー"};
これは、(char [5])[3] ... 「char 5 つである配列」が3つである配列
であり、"チョキ" を格納するには、char[7]の大きさが必要。よって、
char hand[3][7]={"グー","チョキ","パー"};
とすればコンパイルはとおります。
まぁ、初期化としては、
char hand[3][5]={
{'\0','\0','\0','\0','\0'},
{'\0','\0','\0','\0','\0'},
{'\0','\0','\0','\0','\0'}
};
こんなのも正しい初期化ではありますが。
文字コードがShift_JISであれば、
unsigned char hands[3][7]={
{131,79,129,91,},
{131,96,131,135,131,76,},
{131,112,129,91,},
};
こんなこともできますね。無意味ですが。
Win2k/VC++6sp5 ConsoleAppで確認済。
|