Я хочу объявить массив указателей на массивы char *.
Когда я компилирую код, я получаю предупреждения:
warning: initialization of ‘const char *’ from incompatible pointer type ‘const char **’ [-Wincompatible-pointer-types]
Этот код работает, но я знаю, что делаю что-то не так, и у меня не должно быть никаких предупреждений от компилятора C. Как правильно объявить?
const char *S6_ARR[] = {
"here",
"we"
};
const char *S7_ARR[] = {
"go",
"again"
};
const char *SHEET_HEADER_ARR[] = {
S6_ARR,
S7_ARR
};
int main()
{
...
}
Предупреждение сообщает вам, что вы пытаетесь поместить элементы типа const char **
в массив типа const char *
. Поэтому измените тип массива, чтобы он соответствовал тому, что вы в него вкладываете:
const char **SHEET_HEADER_ARR[] = {
S6_ARR,
S7_ARR
};
Узнайте о typedef . Это делает ваш код более читабельным. Вдохновляйтесь существующим открытым исходным кодом, например. ГТК