我想为输入时大小未知的输入字符串动态分配内存,具有精确的精度,即 如果字符串是“堆栈”,我想只分配6个字节。
我想唯一的方法是继续根据输入增加数组的上限,但我无法弄清楚这段代码。
答案 0 :(得分:1)
您需要测量字符串的长度,然后分配。
长度:
int len = strlen(input_string);
分配内存
char *p = malloc (sizeof(char) * len + 1) ;
然后保存
strcpy (p, input_string);
答案 1 :(得分:1)
strdup()
是你的朋友。
char *p = strdup("stack");