ポインタを文字列として表示させようとすると・・・
C言語をいじっていて、よくわからないことが起きた。
char str[] = "vwxyz"; printf("str :%s %d\n", str, sizeof(str)); printf("str OK\n"); printf("*str :%s %d\n", *str, sizeof(*str));/* Bus error */ printf("*str OK\n");
str[]と、配列宣言しているから*strとしても問題ないのは・・・なんとなくOK。
printfで、*str を %s 出力しようとするとBus errorというメッセージが。
当然、%sでなく、%Xとか%pにすれば問題ないが、ポインタを文字列出力することはできないようだ。
このあたりがまだ微妙だ。関数の都合なのか言語の仕様なのか、今ひとつよくわかっていない。
もっといろいろいじり倒していけばわかるようになるだろうか。。。