Создать динамический массив строк, почему не работает? - 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));
Объяснение кода листинга программы
- Объявляется динамический массив строк
a
типаchar
- В каждой ячейке массива
a
выделяется память под строку, используя функциюmalloc
и размер строки в символахm
- Каждой ячейке массива
a
присваивается адрес начала выделенной памяти
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д