为什么用gets函数给字符数组输入内容后无法记录数组长度

在使用gets输入字符给字符数组以后,在使用strlen函数来记录数组长度时,打印出来字符数组长度为0,为什么啊?求大佬指导

strlen函数也好,sizeof函数也好,其实都是直接获取你数组定义的长度
你定义的时候数组长度是0,后来你又动态的给数组添加元素
你再获取数组长度,它还是0
C语言是基于指针的,只要你数组首地址没变,你实际存储的元素数量比数组定义的长度长,也能正确的寻址
但是这样用会有风险,因为你也没法确定内存里到底给数组预留了多少空间,万一后面的地址被别的变量用了,你乱赋值一气,程序就乱套了
所以最好一开始就给数组分配足够的长度,不要初始化成0