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

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

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

Листинг программы
  1. #include <stdio.h>
  2. #include <malloc.h>
  3. #include <stdlib.h>
  4. void main (void) {
  5. char **a;
  6. int n, m, i,j;
  7. printf("Vvedite kol-vo strok__");
  8. scanf("%d", &n);
  9. printf("Vvedite kol-vo stolbcov__");
  10. scanf("%d", &m);
  11. a=(char**) malloc(n*sizeof(char*));
  12. for(i=0; i<n; i++){
  13. a[i]=(char) malloc(m*sizeof(char));
  14. for(j=0; j<m; j++){
  15. printf("a[%d][%d]", i, j);
  16. gets(a[i][j]);
  17. }
  18. }
  19. printf("%c", a[1][3]);
  20. for(i=0; i<n; i++){
  21. free(a[i]);
  22. }
  23. free(a);
  24. }

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

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

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

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

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


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

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

11   голосов , оценка 4.182 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы