Segmentation fault как исправить?

Необходимо создать динамический массив по определённому принципу. В результате компиляции выдаёт Введите количество строк: 7 Введите количество столбцов: 8 Segmentation fault

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
int main()
{
  int **a;  // указатель на массив
  int i, j, n, m;
  printf("Введите количество строк: ");
  scanf("%d", &n);
  printf("Введите количество столбцов: ");
  scanf("%d", &m);
  // Выделение памяти
  a = (int*)malloc(n*m * sizeof(int));
  // Ввод элементов массива
  for (i = 0; i<n; i++)  // цикл по строкам
  {
    for (j = 0; j<m; j++)  // цикл по столбцам
    {
      printf("a[%d][%d] = ", i, j);
      if((i+j)%2 == 0)
        a[i][j] = 0;
      else
        a[i][j] = 1;
      printf("%d", a[i][j]);
    }
  }
  free(a);
  getchar();   getchar();
  return 0;
}

В чём ошибка?


Ответы (0 шт):