Вам необходимо использовать malloc
для выделения вашего 2-мерного массива.
Посмотрите на это ССЫЛКА для хорошего объяснения.
РЕДАКТИРОВАТЬ:
Начиная с кода напо данной ссылке я написал фрагмент кода, который должен работать.
Некоторые отличия от кода Джеймса:
- объявление
m
в верхней части блока кода - преобразование из возвращаемого типа malloc (void *) в правильный
- освобождение памяти в конце
- это полный код, который должен работа: P
#include <stdlib.h>
int main ()
{
// just an example of inputs...
int inputs[3][7];
// your code
int i;
int **m;
int len_arr = (sizeof inputs)/(sizeof inputs[0]);
int half_arr = len_arr / 2;
if(len_arr%2 != 0)
half_arr++;
// allocation of the array
m = (int **)malloc(half_arr * sizeof(int *));
for(i = 0; i < half_arr; i++)
m[i] = (int *)malloc(half_arr * sizeof(int));
// use the array as you like...
// ...
// let's release the allocated memory properly
for(i = 0; i < half_arr; i++)
free(m[i]);
free(m);
}