Заполнить массив словами вводом с консоли - C (СИ)
Формулировка задачи:
Задача тривиальна - заполнить массив словами вводом из консоли. Как я понимаю такой способ не проканает.
Заранее спасибо
Укажите, где основная ошибка (не пинайте сильно, начал учить Си после Delphi) и по возможности напишите корректный код
Заранее спасибо!
char *mmm[4]; int i; puts("Vvedite slova \n"); for (i=1; i<5; i++) { scanf("%s",mmm); }
Решение задачи: «Заполнить массив словами вводом с консоли»
textual
Листинг программы
#define MAXLEN 256 ... char *mmm[4]; int i; puts("Vvedite slova \n"); for (i=1; i<4; i++) { mmm[i] = malloc(MAXLEN); scanf("%s", mmm[i]); } ... for (i=1; i<4; i++) free(mmm[i]);
Объяснение кода листинга программы
В этом коде:
- #define MAXLEN 256 - это определение максимальной длины строки, которую можно сохранить в массиве.
- *char mmm[4];* - это создание массива из 4 элементов, каждый из которых является указателем на строку (char).
- int i; - это создание переменной для итерации по элементам массива.
- puts(
Vvedite slova \n
); - это вывод сообщения с приглашением ввести слова. - for (i=1; i<4; i++) - это цикл, который выполняется 3 раза (для элементов mmm[1], mmm[2], mmm[3]).
- mmm[i] = malloc(MAXLEN); - это выделение памяти под строку (максимальной длины) для каждого элемента массива.
- scanf(
%s
, mmm[i]); - это ввод строки с помощью функции scanf для каждого элемента массива. - for (i=1; i<4; i++) - это цикл, который выполняется 3 раза (для элементов mmm[1], mmm[2], mmm[3]).
- free(mmm[i]); - это освобождение памяти, выделенной под каждый элемент массива. Следует отметить, что ввод с клавиатуры в этом коде не проверяется на ошибки, и если пользователь введет что-то, что не является строкой (например, число или символ), программа может аварийно завершиться.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д