如何将变量放入 const char *array 并使大小成为变量

How to put variables in const char *array and make size a variable

我有这个正确的数组,但我需要值和大小是可变的。这可能吗?如果可以,怎么做?

const char *labels[] = { "Group A", "Group B", "Group C", "Group D", "Group E", "Group F", "Group G", "Group H" };

它必须是一个 const char * 数组,因为它被用作 stringArray 参数,它不会采取任何更简单的方式。

如有任何帮助,我们将不胜感激。请记住我是学生开发者。

c 数组没有可变大小。如果你需要这个功能,你必须使用不同的数据结构

"it is being used as a stringArray parameter, which won't take anything less complicated." 是什么意思?

It has to be a const char *array because it is being used as a stringArray parameter, which won't take anything less complicated.

您可以将 char* 传递给需要 const char* 的函数。

鉴于此,也许你可以尝试这样的事情:

char**arr = malloc(ARRAY_LEN * sizeof(char*));
for (i=0; i<ARRAY_LEN; i++)
{
     arr[i] = malloc(EACH_STRING_LEN);
     if(arr[i]==NULL) 
        handleError();
     strcpy(arr[i],"test"); // put some string in i-th array
}

和释放部分:

for (i = 0; i < ARRAY_LEN; i++) {
  free(arr[i]);
}
free(arr);