char配列で宣言した長さより長い文字列を詰め込んでも普通に動いてしまいます。
なんででしょう・・・
環境:gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
#include <stdio.h>
#include <string.h>
int main()
{
char s[2];
strcpy(s, "very long long string");
printf("%s\n", s);
printf("strlen = %d\n", (int)strlen(s));
printf("size = %d\n", (int)sizeof(s));
return 0;
}
実行結果
very long long string
strlen = 21
size = 2