Я пытаюсь получить указатель на массив целых чисел, который будет временно переназначен в функцию позже, чтобы сохранить себя в математике указателя.Я пытался узнать, ответили ли на него другие вопросы, но я не смог воспроизвести методы, описанные здесь , здесь и здесь .
По сути, я просто хочу временно обработать целочисленную группу и трехмерный массив, чтобы быть уверенным, что я не ошибаюсь в математике указателя.(Я смотрю на это в настоящее время, потому что предыдущий код сделал несогласованные назначения памяти).
#include <stdlib.h>
#define GROUPCOUNT 16
#define SENSORCOUNT 6
#define SENSORDIM 3
int main()
{
int *groupdata = (int *)calloc(GROUPCOUNT * SENSORCOUNT * SENSORDIM,sizeof(int));
int sensordata[SENSORCOUNT*SENSORDIM];
sensordata[7] = 42; //assign some data
int (*group3d)[GROUPCOUNT][SENSORCOUNT][SENSORDIM] = groupdata; //<---Here is the problem
group3d[1][5][1] = sensordata[7]; //I want to do this
free(groupdata);
}
В приведенном выше примере я хочу временно обработать groupdata
как group3d
для назначений,и я просто не могу обернуться вокруг кастинга.В настоящее время у меня есть макросы, которые выполняют указатель по математике для обеспечения правильной структуры, но если бы все это было только в коде, было бы еще лучше, если бы я выдал его.Будем весьма благодарны за любые предложения.
примечание: Трехмерный актерский состав должен использоваться функциональным образом в недрах программы.Пример - просто минимально жизнеспособная программа для меня, чтобы попытаться разобраться в коде.