Как поместить переменные в массив const char * и сделать размер переменной
У меня есть этот массив, который является правильным, но мне нужно, чтобы значения и размер были переменными. Это возможно? Если так, то как?
const char *labels[] = { "Group A", "Group B", "Group C", "Group D", "Group E", "Group F", "Group G", "Group H" };
Это должно быть const char *
массив, потому что он используется в качестве параметра stringArray, который не займет ничего более сложного.
Любая помощь будет оценена. Пожалуйста, имейте в виду, что я студент-разработчик.
2 ответа
Это должен быть массив 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);
Массивы c не имеют переменного размера. Если вам нужна эта функциональность, вы должны использовать другую структуру данных
Что вы подразумеваете под "он используется в качестве параметра stringArray, который не займет ничего более сложного"?