Создать массив строк, чтобы их можно было менять в процессе работы программы - C (СИ)
Формулировка задачи:
Как сделать массив из 5 строк, чтобы их можно было менять в процессе работы программы?
Решение задачи: «Создать массив строк, чтобы их можно было менять в процессе работы программы»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#define AMOUNT_STRING 5
#define LENGTH_STRING 32
int main()
{
char *strings[AMOUNT_STRING];
for (size_t i = 0; i < AMOUNT_STRING; ++i) {
strings[i] = malloc(LENGTH_STRING * sizeof(char));
printf("Enter string (< 32 symbols): ");
gets(strings[i]);
}
for (size_t i = 0; i < AMOUNT_STRING; ++i) {
puts(strings[i]);
free(strings[i]);
}
}
Объяснение кода листинга программы
- Подключаются необходимые библиотеки для работы с файлами и памятью
- Определяются две константы: AMOUNT_STRING - количество строк, которые будут созданы, LENGTH_STRING - максимальная длина одной строки в символах
- Создается массив строк типа char*, который будет динамически расширяться при необходимости
- Происходит инициализация каждой строки массива путем выделения памяти под строку с помощью функции malloc
- В цикле происходит запрос пользователю ввести строку, не длиннее 32 символов, с помощью функции gets
- Введенные строки сохраняются в соответствующих элементах массива
- В цикле выводятся на экран все строки массива
- После вывода каждой строки, память, выделенная под эту строку, освобождается с помощью функции free
- Программа завершается