次の行をコンパイルするのに問題があります。
/*This code compiles with error*/
char HeLev1[6];
HeLev1[]="45.0";
/*but this is OK:*/
char HeLev1[6]="45.0";
次の行をコンパイルするのに問題があります。
/*This code compiles with error*/
char HeLev1[6];
HeLev1[]="45.0";
/*but this is OK:*/
char HeLev1[6]="45.0";
配列に値を代入することはできません。配列要素に値を 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]
) には未定義の値 (ガベージ) があることに注意してください。