你分配出来的空间是用来保存字符串吗?
如果保存字符串的话, C语言的字符串中,最后会保留一个截止符号('\0')的。
你申请字符串的内存空间时,要字符串的长度加1 ,那个1就是为了保存'\0'的。
保存了截止符后,打印输出的程序就会在遇到截止符的时候停下来;计算字符串长度的函数也会在遇到截止符的时候停下来,返回长度。
这个跟你分配的内存空间的大小没什么关系
strlen()字符串的长度判断是根据结束符'\0'来判断的
因为你都没有手动赋值'\0'
所以得到这个结果都只是刚好 那个位置的内存位置的值刚好是 '\0'而已