第7章 C言語のポインタ2 ~charポインタとchar配列~
では、先ほどのプログラムを少し変えてみましょう。
— リスト18``–
#include <stdio.h> #include <string.h> void main() { char array[7]; char *ptr; /** * char配列に、文字列をコピーする */ strcpy(array, "abcdef"); /** * char ポインタに、char配列の先頭のアドレスをコピーする */ ptr = &(array[0]); /** * char ポインタに、文字列をコピーする */ strcpy(ptr, "ghijkl"); /** * char 配列、char ポインタをそれぞれ文字列形式で表示する */ printf(" array = %s\n ptr = %s\n", array, ptr); }
char ポインタに、char 配列の先頭アドレスをコピーしたために、 プログラムは異常終了しなくなりました。 しかし、これは新たに箱が用意されたわけではありません。 表示結果を見れば、明らかですね。
以上のことから、char ポインタを使って文字列を扱う場合には、 次のような問題があることがわかりました。
1.文字列を入れるべき箱が用意されない。
2.他のchar 配列のアドレスを代入すると1.の問題は解決するが、
元々の変数も書き換わることになる。
結論から言うと、初心者のうちは、なるべくchar 配列を使ってください。
では、charポインタは、全く使う必要が無いのでしょうか?
< 前のページへ 次のページへ >-
IS 559680 / ISO27001
認証範囲 本社、芝大門オフィス情報セキュリティ基本方針 -
個人情報保護方針
個人情報の取扱いについて
保有個人データ又は
第三者提供記録に関する
事項の周知について
特定個人情報の取扱いについて -
FS 671851 / ISO9001
認証範囲 本社、芝大門オフィス品質方針