文字列 代入

文字列の扱いは、難しい(ややこしい)。。

char str = "abcd";
初期化時には、このような感じで文字列を代入できる。
配列の要素数は、文字数 + 1{ヌル文字(0)} の数で設定される。⇒この場合は、5つ。

文字列を途中で追加(結合)する場合は、
strcpy(str, "efgh");
でできる。出力するとうまく行ったように見られるが、この例では、メモリ領域破壊を起こしているらしい。。

str配列 要素数:5
str ={'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'}; ←str配列の要素数よりも多くの要素が入っており、 'f', 'g', 'h' は領域破壊を
起こしている。
--
この場合の回避策として、
  ① 事前に、str配列初期化時に十分な要素数を確保しておく必要がある。(この場合は、9個以上)
  ② malloc() または calloc()を使用し、動的に領域(要素数)を増やす。