2

我想以精确的精度为输入时大小未知的输入字符串动态分配内存,即如果字符串是“堆栈”,我只想分配 6 个字节。

我想唯一的方法是根据输入继续增加数组的上限,但我无法弄清楚这段代码。

4

2 回答 2

2

strdup()是你的朋友。

char *p = strdup("stack");
于 2013-09-23T03:33:37.833 回答
1

您需要测量字符串的长度,然后进行分配。

长度:

int len = strlen(input_string);

分配内存

char *p = malloc (sizeof(char) * len + 1) ;

然后保存

strcpy (p, input_string);
于 2013-09-23T03:16:45.733 回答