文字列は0(ヌル文字)で終わる
- これは問題ないが
#include <stdio.h> int main(void){ char str[4] = "aaa"; printf("%s", str); return 0; }
- これはエラーとなる
#include <stdio.h> int main(void){ char str[4] = "aaaa"; printf("%s", str); return 0; }
- *strが指し示すのは*(str + 0)なので%sが要求するNULL文字が来ないのでエラーとなる。
#include <stdio.h> int main(){ char *str1 = "hoge"; printf("%c\n", *str1);#「h」を表示 return 0; }