Правильный синтаксис в C для определения массива 3D-указателей - PullRequest
1 голос
/ 09 сентября 2010

в программе на C мне нужно определить

float (*d_i)[3];

, но позже я понял, что мне нужно определить переменные NMAX этого типа.Я пытался с

   float (*d_i)[3][NMAX];

, но он не работает.

Какой будет правильный синтаксис?

Спасибо

Ответы [ 3 ]

2 голосов
/ 09 сентября 2010

Не угадай.Просто используйте typedef.

typedef float (*someType)[3];

someType d_i[NMAX];

(Если вы действительно не хотите typedef,

float (*d_i[NMAX])[3];

)

1 голос
/ 09 сентября 2010
typedef float array_of_3_floats[3];

array_of_3_floats *d_i;           /* what you have now */
array_of_3_floats d_ii[NMAX];     /* what I think you want */
array_of_3_floats (*d_iii)[NMAX]; /* maybe what you want */
0 голосов
/ 09 сентября 2010

Является ли NMAX константой? Если нет, выделение памяти должно выполняться динамически с использованием malloc (или эквивалентного).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...