#include <stdio.h>
int main()
{
char str[11] = "HelloWorld";
printf("%s\n",str);
printf("%s\n",str+3);
/* This Line here is the devil */
printf("%s\n",str[2]); // %s needs an addr not a value.
return 0;
}
その行がセグメンテーション違反を引き起こすのはなぜですか。値ではなくアドレス%s
が必要だからです。printf
実際の理由は何ですか?