int main() { char sir[5]={"hello"}; return 0; }
5是长度,你这么赋值是错误的。字符串结束符写到sir数组之外了,越界访问
sir[5]有5个字节,hello能完全放下,但是就没有位置给\0了。所以显示str的时候,可能会显示更多的字符。