|
31 / 22 / 10
Регистрация: 08.03.2020
Сообщений: 113
|
||||||
Ошибка во время освобождения памяти двумерного динамического массива, созданного malloc()05.03.2026, 12:53. Показов 2594. Ответов 50
Метки нет (Все метки)
Всем привет!
Изучаю C по книгам самостоятельно. Прошу помощи у знающих людей. Решаю задачу на динамическое выделение памяти. Написал программу, которая должна вычислять среднее по температуре за каждый день. Каждый день - это одна строка user input с 3-мя значениями. Программа считывает произвольное количество строк с 3-мя цифрами (строка == день), вычисляет среднее значение температуры за каждый день и выводит пользователю. Но при попытке освободить память, соответствующей строки массива, вываливается в ошибку. Что я делаю не так? Прошу не кидать тапками, так как я тупарь-самоучка. Всем откликнувшимся БОЛЬШОЕ СПАСИБО!! Код:
0
|
||||||
| 05.03.2026, 12:53 | |
|
Ответы с готовыми решениями:
50
Malloc ошибка освобождения памяти Распределение памяти для выделения и освобождения блоков памяти внутри запрошенного пула В чем разница между malloc() и (char *)malloc() |
|
31 / 22 / 10
Регистрация: 08.03.2020
Сообщений: 113
|
||||||||||||
| 05.03.2026, 18:23 [ТС] | ||||||||||||
|
TheCalligrapher, спасибо большое за участие!
Исправил первоначальный код, но все равно вываливается в Sigmentation fault. Я думаю, что упускаю что-то важное и оно рядом... причесанный код из 1 сообщения (добавил комментарии):
Большое спасибо!
0
|
||||||||||||
|
Злостный нарушитель
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
|
||
| 05.03.2026, 18:32 | ||
0
|
||
|
31 / 22 / 10
Регистрация: 08.03.2020
Сообщений: 113
|
||||||
| 05.03.2026, 19:12 [ТС] | ||||||
|
Рабочий код из варианта 2. Вроде бы учел все комментарии от TheCalligrapher
код:
Как пишут в книгах по С, так делать не рекомендуется, так как это влечет за собой большие накладные расходы. Оно и понятно.
0
|
||||||
|
Злостный нарушитель
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
|
|
| 05.03.2026, 19:23 | |
|
0
|
|
|
31 / 22 / 10
Регистрация: 08.03.2020
Сообщений: 113
|
|||||||||||||||||
| 05.03.2026, 19:33 [ТС] | |||||||||||||||||
|
Разобрался!!!
В первом варианте из сообщения 21 ошибка была в строке:
Еще раз спасибо большое всем откликнувшимся!
0
|
|||||||||||||||||
|
Злостный нарушитель
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
|
|
| 05.03.2026, 19:35 | |
|
0
|
|
|
31 / 22 / 10
Регистрация: 08.03.2020
Сообщений: 113
|
|
| 05.03.2026, 19:46 [ТС] | |
|
Beginning C. From beginning to Pro
ссылка
0
|
|
|
Злостный нарушитель
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
|
||
| 05.03.2026, 20:08 | ||
|
Не надо, нашёл. А чо она на английском? Ты американец, штоли?
0
|
||
|
Злостный нарушитель
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
|
|
| 05.03.2026, 20:25 | |
|
0
|
|
|
657 / 410 / 76
Регистрация: 21.09.2008
Сообщений: 1,409
|
||
| 06.03.2026, 16:10 | ||
|
По языку Си из иностранной литературы мне запомнилась книга K. N. King "C Programming. Modern Approach (Second Edition, 2008)". На русском запомнились книги Бена Клеменса "Язык Си в XXI веке." Изд-во ДМК-Пресс, 2015. - 376 с. и Амини Камран "Экстремальный Cи. Параллелизм, ООП и продвинутые возможности." СПб.: Питер, 2021. — 752 с. В Сети в электронном виде найти можно.
1
|
||
|
Злостный нарушитель
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
|
|
| 06.03.2026, 19:15 | |
|
0
|
|
|
31 / 22 / 10
Регистрация: 08.03.2020
Сообщений: 113
|
|
| 07.03.2026, 13:58 [ТС] | |
|
sharpey, спасибо большое!
Мне понравилась подборка из это темы на stackoverflow
0
|
|
| 07.03.2026, 14:16 | ||
|
Не по теме:
0
|
||
|
657 / 410 / 76
Регистрация: 21.09.2008
Сообщений: 1,409
|
||
| 07.03.2026, 16:49 | ||
Тут, кстати, по ссылке данной artemkau88, увидел книгу "Expert C Programming: Deep C Secrets" - Peter van der Linden (1994) про "подводные камни" языка Си. Насколько я знаю, она до сих пор не переведена на русский язык. Я её давно читал в оригинале - зело полезная, прочитать нужно каждому уважающему себя Сионисту. Если коснулись безопасного программирования на языке Си, то мне понравилась книга Роберт С. Сикорд Безопасное программирование на языке С и С++, 2-е изд.: - М.: ООО "И.Д. Вильямс", 2015. - 496 с..
1
|
||
|
657 / 410 / 76
Регистрация: 21.09.2008
Сообщений: 1,409
|
|
| 07.03.2026, 17:07 | |
|
Eddy_Em, для искушенного в знании Си - возможно покажется такой. Предлагаю ещё одну книгу:
Роберт С. Сикорд Эффективный C. Профессиональное программирование. - СПб.: Питер, 2021. - 304 с.
1
|
|
|
Нарушитель
|
||||||
| 07.03.2026, 19:26 | ||||||
|
sharpey, чтобы хорошо знать С, достаточно K&R. А о более-менее новомодных вещах можно в стандарте прочитать.
Кстати, в С как бы добавили constexpr. А почему "как бы" — да потому, что на текущий момент это от обычной константы вообще ничем не отличается! И приходится городить всякие кодогенераторы, чтобы для микроконтроллера сделать разбор хэшей команд. Т.е. плюсер пишет:
0
|
||||||
|
443 / 168 / 29
Регистрация: 12.12.2020
Сообщений: 1,342
|
|||
| 07.03.2026, 19:33 | |||
|
Добавлено через 2 минуты
0
|
|||
|
Вездепух
13205 / 6840 / 1822
Регистрация: 18.10.2014
Сообщений: 17,298
|
||
| 07.03.2026, 20:01 | ||
void * беспокоиться вообще смысла нет - компилятор С++ поймает и укажет все такие места. В тех случаях, когда кросс-компилируемый С/С++ код действительно нужен (в кросс-компилируемых заголовочных файлах) - это особый стиль программирования со своими правилами и приемами. (Я бы лично советовал все "ненужное", что вписано в С код для совместимости с С++ кодом помечать особым образом. Например, приведения типов, навязанные С++, выполнять через #define CPP_CAST(T, v) ((T) v) и т.п.)А за пределами явного намерения/необходимости написать кросс-компилируемый С/С++ код вопроса "если этот код в будущем компилировать в с++..." просто не существует. Если вы пишете на С, то вы пишете на С. Не надо оглядываться на С++. Это совсем другой язык.
0
|
||
|
443 / 168 / 29
Регистрация: 12.12.2020
Сообщений: 1,342
|
||
| 07.03.2026, 20:02 | ||
![]() Но все равно по моему привычка определять тип выделяемой памяти это не криминал и поможет если в будущем писать под плюсы
0
|
||
| 07.03.2026, 20:02 | |
|
Помогаю со студенческими работами здесь
40
Освобождение памяти в динамическом двумерном массиве Malloc (выделение памяти двумерному массиву) - проверить код
Используя malloc и realloc создать двумерный динамический массив Ошибки при выделении (освобождении) динамической памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|