精确的动态内存分配

时间:2013-09-23 03:05:29

标签: c string memory-management realloc

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

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

2 个答案:

答案 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");