Создание динамического массива в функции - C (СИ)

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

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

Что - то я не сильно догоняю.
void create_matrix( int ***array,  int N,  int M )
{
    int i; 
    *array = ( int** )calloc( N, sizeof(int*) );
    for( i = 0; i < M; i++ )
        *(array)[i] = ( int* )calloc( M, sizeof(int) );
}
void input_matrix(int ***array,  int N,  int M)
{
    if( !(*array)) { printf("\nNot created matrix\n"); return; }
    srand( time(NULL) );
    int i, j;
    for( i = 0; i < N; i++ )
    for( j = 0; j < M; j++ ) { (*array)[i][j] = rand()%100 + 1; if( (*array)[i][j]%(rand()%50 + 1)) (*array)[i][j] *= -1;}
 
    for( i = 0; i < N; i++ )
    {
        for( j = 0; j < M; j++ )
        printf("%d ", (*array)[i][j]);
    printf("\n");
    }
}
Если размерность 1 на 1 то всё нормально, а если больше то ошибка вылазит. Ни разу не передавал матрицу в функцию, а там ей динамически память выделял до этого, а теперь требует задание. Помогите, пожалуйста.

Решение задачи: «Создание динамического массива в функции»

textual
Листинг программы
(*array)[i]

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


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

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

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