Программа зацикливается при вводе матрицы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Помогите, в программе какая то ошибка, не могу найти. Почему-то зацикливается при вводе матрицы.
#include <stdio.h>
#include <stdlib.h>
 
void InitMem(int** A,int M, int N)
{
    int x;
    A = (int **) calloc(M,sizeof (int *));;
    for(x = 0; x < M; x++)
        A[x] = (int *) calloc(N, sizeof (int));
    return A;
}
 
void FreeMem(int** A, int M)
{
    int i ;
    for(i= 0; i < M; i++)
        free(A[i]);
    free(A);
}
 
void ReadMatr1 (int *A[], int M, int N)
{
    int i, j;
    for(i=0; i<M; i++)
    {
     for(j=0; j<N; j++)
      scanf ("%d", &A[i][j]);
    }
 
    return 0;
}
void WriteMatr(int *A[], int M, int N)
{
    int i,j;
    for(i=0; i<M; i++)
    {
        for(j=0; j<N; j++)
            printf("%i ",A[i][j]);
        printf(" \n");
    }
    printf("\n");
    return 0;
}
void main()
{
    int i,j, **A;
    int M, N;
 
    printf("vved M-stroki ");
    scanf("%d",&M);
    printf("vved N-stolbtci ");
    scanf("%d",&N);
    InitMem(A,M,N);
    if (A!=NULL )
    {
        printf ("vvedite matritcu a: \n");
        ReadMatr1(A,M,N);
        WriteMatr(A, M, N);
        FreeMem(A,M);
     }
    else printf("not mem");
}

Решение задачи: «Программа зацикливается при вводе матрицы»

textual
Листинг программы
int** InitMem(int M, int N)
{
    int x, **A;
    A = (int **) calloc(M,sizeof (int *));;
    for(x = 0; x < M; x++)
        A[x] = (int *) calloc(N, sizeof (int));
    return A;
}

Объяснение кода листинга программы

В данном коде представлена функция InitMem, которая занимается инициализацией динамической памяти для двумерного массива (матрицы) целых чисел.

  1. В первой строке объявлены две переменные: x и A.
  2. Переменная A инициализируется как указатель на указатель на целочисленную переменную.
  3. Затем, с помощью функции calloc, выделяется память под массив указателей на целочисленные переменные.
  4. В цикле for происходит инициализация каждого указателя в массиве A с помощью функции calloc.
  5. В конце функции, возвращается инициализированный массив A.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы