C中的字符串内存分配

Glo*_*ove -3 c memory arrays char

任何人都可以澄清一下吗?

char str[1];
strcpy(str, "HHHHHHHHHHHH");
Run Code Online (Sandbox Code Playgroud)

这里我声明了一个大小为1的char数组,但是程序不会崩溃,直到我输入超过12个字符而且我只有一个数组大小.为什么?

Ker*_* SB 5

此代码具有未定义的行为,因为它将多个元素写入str.它可以做任何事情.这是你的责任,以确保您只写到您自己的记忆.