Создать динамический массив строк, почему не работает? - C (СИ)

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

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

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
void main (void) {
char **a;
int n, m, i,j;
printf("Vvedite kol-vo strok__");
scanf("%d", &n);
printf("Vvedite kol-vo stolbcov__");
scanf("%d", &m);
a=(char**) malloc(n*sizeof(char*));
for(i=0; i<n; i++){
    a[i]=(char) malloc(m*sizeof(char));
    for(j=0; j<m; j++){
                printf("a[%d][%d]", i, j);
                gets(a[i][j]);
    }
    }
 
    printf("%c", a[1][3]);
    for(i=0; i<n; i++){
        free(a[i]);
    }
    free(a);
}

Решение задачи: «Создать динамический массив строк, почему не работает?»

textual
Листинг программы
a[i]=(char) malloc(m*sizeof(char));

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

  1. Объявляется динамический массив строк a типа char
  2. В каждой ячейке массива a выделяется память под строку, используя функцию malloc и размер строки в символах m
  3. Каждой ячейке массива a присваивается адрес начала выделенной памяти

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


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

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

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