-5

次の行をコンパイルするのに問題があります。

/*This code compiles with error*/
char HeLev1[6];
HeLev1[]="45.0";
/*but this is OK:*/
char HeLev1[6]="45.0";
4

2 に答える 2

5

配列に値を代入することはできません。配列要素に値を 1 つずつ割り当てる必要があります (または、文字列を扱う場合は、を使用しますstrcpy()) 。

char HeLev1[6];
strcpy(HeLev1, "45.0");

char HeLev2[6];
HeLev2[0] = '4';
HeLev2[1] = '5';
HeLev2[2] = '.';
HeLev2[3] = '0';
HeLev2[4] = '\0'; /* properly "terminate" the string */

コードの OK 部分には、代入ではなく配列の初期化があることに注意してください。

HeLev1[5]また、上記のどちらの場合でも、6 番目の要素 (またはHeLev2[5]) には未定義の値 (ガベージ) があることに注意してください。

于 2013-04-25T20:33:57.797 に答える