相关疑难解决方法(0)

如何为字符串动态分配内存空间并从用户获取该字符串?

我想用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个额外空间).

我怎么能实现这个目标?

c string malloc memory-management dynamic

43
推荐指数
4
解决办法
12万
查看次数

标签 统计

c ×1

dynamic ×1

malloc ×1

memory-management ×1

string ×1