2D-массив указателей на что?
T *p[N][M]; // N-element array of M-element array of pointer to T
T (*p[N][M])(); // N-element array of M-element array of pointer to
// function returning T
Если мы говорим о указателях на 2D массивов, то вещи только получить немного более интересными:
T a[N][M]; // N-element array of M-element array of T
T (*p)[M] = a; // Pointer to M-element array of T
T (**p2)[M] = &p; // Pointer to pointer to M-element array of T
T (*p3)[N][M] = &a; // Pointer to N-element array of M-element
// array of T
T (**p4)[N][M] = &p3; // Pointer to pointer to N-element array of
// M-element array of T
Edit: подождите, я думаю, что я могу получать то, что вы после этого.
T *(*a[N])[M]; // a is an N-element array of pointer to M-element
// array of pointer to T
Edit: Теперь мы получаем действительно глупо:
T *(*(*a)[N])[M]; // a is a pointer to an N-element array of
// pointer to M-element array of pointer to T
T *(*(*(*f)())[N])[M]; // f is a pointer to a function returning
// a pointer to an N-element array of pointer
// to M-element array of pointer to T
T *(*(*f[N])())[M]; // f is an N-element array of pointer to
// function returning pointer to M-element
// array of pointer to T
И патологически безумен:
T *(*(*(*(*(*f)())[N])())[M])(); // f is a pointer to a function
// returning a pointer to a N-element
// array of pointer to function
// returning M-element array of
// pointer to function returning
// pointer to T
для определения типов являются wusses.
'int * array [10] [10];' – avakar
Итак, с какого типа typedefs плохой стиль? Я хочу увидеть имена людей, которые отвечали за эту идею на моем столе завтра. –
Авакар ... просто прав, я не понимаю смысла этого вопроса. Возможно, прошло уже более 10 лет, так как ваш босс на самом деле запрограммирован на C, и он слабо помнит об этом как о трудном? Или есть какая-то часть «проблемы», которую вы забыли включить? – unwind