C,从键盘输入字符串不知大小时能否动态开辟内存存放,还是必须char name[20]这样指定大小

比如实际只有10个字符,而我直接定义了20个。。。。定义一个指定大小数组指针感觉会有空间浪费啊。。。
有没有一种方法能在键盘输入后根据字符串大小开辟一个合适的内存空间。。
会的人麻烦解答一下喽-。-

malloc可以动态申请,你可以查收一下,可以根据你输入的大小,动态申请空间大小

char *name=malloc(n*sizeof(char));可以申请到n个char大小的空间,即可以存放n个字符

大家可能理解错我的意思了,我的意思是不知道要输入多少字节的字符串,比如我从键盘可能输入5个也可能输入100个字符,那怎么才能在不知道的情况下申请区域

不知道大小还申请个什么区域啊!动态的意思是可以根据需要分配内存,首先你得知道要自己想要多少空间。