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

Arrays 在C中声明动态长度的字符串,arrays,dynamic,Arrays,Dynamic,我有以下声明:charname[size+1]={'\0'}其中大小具有预定义值。我不想修改数组的大小。我想知道如何声明一个字符串,该字符串将在C中包含一个具有动态长度的名称 谢谢。您可以使用malloc来完成 char* name = (char*)malloc((size+1) * sizeof(char)); 读一读 当您写入字符名[size+1]时,会在堆栈上分配内存。但是使用malloc时,它是在堆(动态内存)上分配的。谢谢您的解释。char*name=(char*)malloc((

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


谢谢。

您可以使用malloc来完成

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


当您写入
字符名[size+1]
时,会在堆栈上分配内存。但是使用malloc时,它是在堆(动态内存)上分配的。

谢谢您的解释。char*name=(char*)malloc((大小+1)*sizeof(char));变量“size”的初始值应该是多少?所以我有一个变量“typeName”和一个变量“name”。varaibale“name”以以下格式存储字符串:Auto_uu“typeName”工作流。“typeName”的长度在运行时确定。字符名[名称大小+1]={'\0'};sprintf(名称,“自动%s\u工作流”,类型名称);