我有这个数组是正确的,但我需要值和大小是可变的。这可能吗?如果是这样,怎么样?
const char *labels[] = { "Group A", "Group B", "Group C", "Group D", "Group E", "Group F", "Group G", "Group H" };
它必须是一个const char *
数组,因为它被用作stringArray参数,它不会带来任何不太复杂的东西。
任何帮助将不胜感激。请记住,我是一名学生开发人员。
答案 0 :(得分:1)
它必须是一个const char *数组,因为它被用作一个 stringArray参数,不会带来任何复杂的东西。
您可以将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);
答案 1 :(得分:0)
c数组没有可变大小。如果您需要此功能,则必须使用不同的数据结构
你的意思是“它被用作一个stringArray参数,它不会带来任何不那么复杂的东西。”?