我想用C程序读取用户的输入.我不想使用数组,
char names[50];
Run Code Online (Sandbox Code Playgroud)
因为如果用户给出长度为10的字符串,那么剩余的空间就会被浪费掉.
如果我使用字符指针,
char *names;
Run Code Online (Sandbox Code Playgroud)
那么我需要以这样的方式为它分配内存,
names = (char *)malloc(20 * sizeof(char));
Run Code Online (Sandbox Code Playgroud)
在这种情况下,也存在内存浪费的可能性.
所以,我需要的是为字符串动态分配内存,该字符串与字符串的长度完全相同.
让我们假设,
如果用户输入是"stackoverflow",那么分配的内存应该是14(即字符串的长度= 13和'\ 0'的1个额外空间).
我怎么能实现这个目标?