Создать динамический массив строк, почему не работает? - 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
присваивается адрес начала выделенной памяти
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д