У меня есть malloc'ed 3d-массив двойных чисел в C, который генерирует ошибку нарушения доступа к данным при доступе через индексы.
Функция выделения: (упрощенная версия, не проверяющая нулевые значения или освобождающая при ошибках)
#define DIMENSIONA 50
#define DIMENSIONB 30
#define DIMENSIONC 2
double *** Array;
void InitialiseDataStructure(void)
{
int Counter = 0;
int PointCounter = 0;
Array = (double ***)malloc(DIMENSIONA * (sizeof(double**)));
for (Counter = 0; Counter < DIMENSIONA; Counter++)
{
Array[Counter] = (double **)malloc(DIMENSIONB * sizeof(double *));
for (PointCounter = 0; PointCounter < DIMENSIONB; PointCounter++)
{
Array[Counter][PointCounter] = (double *)malloc(DIMENSIONC * sizeof(double));
}
}
}
Затем доступ к массиву осуществляется следующим образом:
Array[x][y][z] = 0;
Это генерирует ошибку нарушения доступа к данным и завершает программу.
Я прочитал, попробовал и пришел к выводу - я тупой.Пожалуйста, помогите !!!