Я пытаюсь назначить составной литерал переменной, но, похоже, это не сработает, см.:
int *p[] = (int *[]) {{1,2,3},{4,5,6}};
Я получил ошибку в gcc.
но если я пишу только это:
int p[] = (int []) {1,2,3,4,5,6};
Тогда все в порядке.
Но это не то, что я хочу.
Я не понимаю, почему возникает ошибка, потому что, если я инициализирую ее как массив или использую ее с указателем массивов символов, все в порядке, см.
int *p[] = (int *[]) {{1,2,3},{4,5,6}}; //I got a error
int p[][3] = {{1,2,3},{4,5,6}}; //it okay
char *p[] = (char *[]) {"one", "two"...}; // it okay!
Примечание. Я не понимаю, почему у меня возникла ошибка в первом, и, пожалуйста, я не могу, или я не хочу писать, как вторую форму, потому что она должна быть составной литературой, а я Не хочу сказать, насколько велик массив для компилятора. Я хочу что-то вроде второго, но для значений int.
Спасибо заранее.