如何将变量放入 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);
我有这个正确的数组,但我需要值和大小是可变的。这可能吗?如果可以,怎么做?
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);