在C中声明动态长度的字符串

时间:2017-02-22 11:46:50

标签: arrays dynamic

我有以下声明:字符名称[size + 1] = {'\ 0'}; 其中size具有预定义值。我不想修复数组的大小。我想知道如何声明一个字符串,该字符串将在C中保存带有动态lenth的名称。

谢谢。

1 个答案:

答案 0 :(得分:0)

你可以使用malloc来做到这一点。

char* name = (char*)malloc((size+1) * sizeof(char));

了解它here

当您编写char name[size + 1]时,内存将在堆栈上分配。但是使用malloc它会在堆上分配(动态内存)。