10.27 Память на куче

Повторение:

Бывает по-разному, но обычно у запущенной программы в ОС:

Почему так? Потому что!!! (+потому что виртуальная память, а так удобнее)

{OK} strlen, strlcpy и strlcat: ввести число n и строку, сформировать и вывести строку, повторенную n раз

Тип void * и двойные ссылки; malloc() и calloc()

:)) Был ли void * на лекциях? Для чего нужен?

:)) Тип int ** и ему подобные — для чего нужны?

Кто маллочит — тот и фрит!

Ввод строки произвольного размера

Работа getline

  1. {OK} Ввод строки произвольного размера (для этого надо инициализировать приёмник NULL-ом)

(требуется free()):

Массив строк

Д/З (предварительное)


  1. Ввести две строки, вывести их наиболее длинную общую подстроку. Если таких несколько, вывести ту, что следует раньше в первой строке. TODO задать максимальный размер так, чтобы годился неэффективный алгоритм

    01uj12qawsed23tgyhej34
    uj-tgyhej-qawsed
    →
    qawsed
  2. Ввести последовательность «плюсфрагментов» — цепочек произвольных символов, разделённых символом '+'. Вывести только фрагменты, целиком состоящие из латинских гласных a, e, i, o, u. Внутри фрагмента могут встречаться пробелы и переводы строки. Совет: [[man3:getdelim]] и [[man3:strspn]]

  3. Ввести массив строк и отсортировать их по количеству запятых в них любым алгоритмом устойчивой сортировки. Вывести отсортированные строки, каждую на своей строке экрана.
    • Алгоритм устойчивой сортировки сохраняет исходный порядок среди элементов, имеющих одинаковое значение критерия сортировки. Годится «пузырёк»
  4. Поиск с заменой. Ввести три строки — s, a и b. Вывести строку, в которой все вхождения a будут заменены на b. Повторную замену (в случае, когда после замены образуются новые вхождения) делать не надо.

    • Поиск и замену вести в один проход среди найденных вхождений a в s в порядке от начала к концу. Например, при s="11111", a="11", b="2" результатом замены должно быть "221".

    • Нет повторной замены: "aba" → "ca" в строке "ababa". Вхождение aba в ababa одно (за первым aba следует только ba) ⇒ результат поиска с заменой — "caba".

LecturesCMC/AL/Prac/16_Malloc (последним исправлял пользователь FrBrGeorge 2026-10-25 15:40:17)