Как поместить переменные в массив 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, который не займет ничего более сложного"?

Другие вопросы по тегам