|
0 / 0 / 0
Регистрация: 24.02.2021
Сообщений: 18
|
||||||
Ошибка Fatal glibc error: malloc.c:259904.01.2025, 20:16. Показов 12062. Ответов 34
При компиляции ошибок нет.
При запуске в середине программы ошибка.
Открываю файл config (текстовый), в нем настройки программы. С новой строки (переменная = значение). Есть в конфиге следующая строка: prefix_mobile = m При наличии строки ошибок нет, но переменная в которую я копирую значение оказывается пустая. Когда строку из конфига убираю - происходит ошибка (выше). 1. Почему переменная char * prefix_mobile пустая, когда я копирую туда значение. Она не пустая сразу. Я делал вывод в консоль через printf и она выводится правильно. Ниже через строк 300-400 кода я вывожу эту переменную и она пустая. 2. Почему когда я убираю эту строку из конфига происходит ошибка (выше). Много информации нашел в интернете, в т.ч. про valgrind утилиту для тестирования. Могу переписать код программы по новой и посмотреть что выйдет, но уйдет много времени. 3. Читал статью в интернете. Про выделение памяти malloc. Есть информация что выделенная память растет в геометрической прогресиии, даже если передаю в malloc 9 байтов, то она округляется до 8 * 2 = 16. Если передаю malloc 129 (128 + 1), то память округляется до 256 (128 * 2). Это миф или есть основа для таких выводов? Может есть другое объяснение этой информации? Есть альтернативные библиотеки для управление памятью?
0
|
||||||
| 04.01.2025, 20:16 | |
|
Ответы с готовыми решениями:
34
Ошибка при компиляции [Linker Fatal Error] Fatal: Expected a file name: Ошибка [Linker Fatal Error] Fatal: Unable to Open file 'VCL.LI' Ошибка [Linker Fatal Error] Fatal: Expected a file name: |
|
274 / 206 / 30
Регистрация: 26.11.2022
Сообщений: 910
|
|||
| 08.01.2025, 00:08 | |||
|
мне вот совершенно непонятно почему вы не хотите выяснить где ваша программа выходит за размер выделенного блока памяти. делаете отладочную обёртку, подписываете до и после блока и всё. единственная модификация существующего кода - добавляется ещё один заголовочный файл.
0
|
|||
|
0 / 0 / 0
Регистрация: 24.02.2021
Сообщений: 18
|
|
| 10.01.2025, 01:12 [ТС] | |
|
Ошибка была в аллокаторе malloc.h
решил так: 1. библиотеку <unistd.h> не отключал 2. с репозитория github (nasrat-v/malloc) скопировал себе все функции в начало файла. ошибка исчезла. в чем проблема неизвестно.
0
|
|
|
87 / 87 / 18
Регистрация: 11.06.2018
Сообщений: 302
|
||
| 14.01.2025, 23:10 | ||
|
Не думаю, что щас как-то подругому. То, что ты ошибку у себя не нашел, а валить стал на библиотечный код - это понятная реакция, но вот то, что ты на этом остановился и копать не стал, чтоб истину узнать, говорит о тебе многое и не в самом лучшем свете.
1
|
||
|
0 / 0 / 0
Регистрация: 24.02.2021
Сообщений: 18
|
|
| 18.01.2025, 10:34 [ТС] | |
|
ablex, ты видел исходный код библиотеки malloc? вот посмотри сначала а потом делай выводы
0
|
|
|
274 / 206 / 30
Регистрация: 26.11.2022
Сообщений: 910
|
||
| 18.01.2025, 11:29 | ||
|
Этих реализаций сотни и постоянно выходят новые и улучшенные версии. потрогать вершину айсберга - тут https://habr.com/ru/articles/645137/ любой аллокатор памяти это очень стабильный код, который всячески тестируется. если у вас срабатывает assert внутри аллокатора то 99,999 % - это ошибка а вашем коде. Это ваш код попортил внутренние данные аллокатора.
0
|
||
|
87 / 87 / 18
Регистрация: 11.06.2018
Сообщений: 302
|
|
| 18.01.2025, 16:57 | |
|
davidzhuchkov, Ищи ошибку в своём коде.
0
|
|
|
Вездепух
13241 / 6873 / 1827
Регистрация: 18.10.2014
Сообщений: 17,420
|
|||
| 19.01.2025, 06:35 | |||
|
P.S. В языке С нет никакого "аллокатора malloc.h". Добавлено через 4 минуты memset делается как &g.useragent_masks_desktop[ g.useragent_masks_desktop_count ][0], а для strcpy - как g.useragent_masks_desktop[ g.useragent_masks_desktop_count ]. Да, это одно и то же, но почему вдруг такие два стилистически разных подхода использованы в соседних строчках кода? Разные люди писали?Это не говоря уже о полнейшей бессмысленности данного memset.
0
|
|||
|
0 / 0 / 0
Регистрация: 24.02.2021
Сообщений: 18
|
||||||||||||||||
| 25.01.2025, 13:29 [ТС] | ||||||||||||||||
|
TheCalligrapher, проблема была не в memset точно, потому-что функции выполняются поочередно. просто уходило больше времени.
Вообще библиотека malloc.h существует. Идет вместе с библиотекой unistd.h. также можно скачать и подключить отдельно. Проблема была в REALLOC , потому что он портил данные при перераспределении памяти. Вообще нужно выделать память сразу, и рассчитывать это перед запуском основного кода. Допустим зная что максимальная длина 1000 в 2д массиве. можно выделить сразу память для указателей написав:
0
|
||||||||||||||||
|
Вездепух
13241 / 6873 / 1827
Регистрация: 18.10.2014
Сообщений: 17,420
|
||||||||
| 25.01.2025, 17:13 | ||||||||
??? Того, что "можно скачать и подключить отдельно" существует очень много разного. Это ничего не значит.В языке же С никакой "библиотеки malloc.h" не существует. !!! "Есть информация"...Кстати, а что такое "портить память"?
0
|
||||||||
|
0 / 0 / 0
Регистрация: 24.02.2021
Сообщений: 18
|
|
| 25.01.2025, 20:00 [ТС] | |
|
TheCalligrapher, да мне эта критика никуда не уперлась.
за пределы памяти не выхожу. realloc выдает ошибку Fatal glibc error: malloc.c:2599. если нет решения - досвидание. покиньте тему. на указатели первого уровня уходит 4гб из 48 гб. так если жалко купить 4 планки ОЗУ по 16 гб, и проводить тесты. а мне они именно для тестов нужны. то это ваше дело. сколько озу жрет mysql? она вообще выделает по 65к байт на текст и куда там 10к символов писать а остается сколько? в оптимизации вы профан! Добавлено через 5 минут TheCalligrapher, у тебя Сообщений: 16,928 на форуме, а ты логику выбора не понимаешь. ты вообще программист?
0
|
|
|
0 / 0 / 0
Регистрация: 24.02.2021
Сообщений: 18
|
|||
| 25.01.2025, 20:32 [ТС] | |||
|
Добавлено через 16 минут
0
|
|||
|
274 / 206 / 30
Регистрация: 26.11.2022
Сообщений: 910
|
|
| 25.01.2025, 21:57 | |
|
Стилистические различия скорее всего из за того что в разное время писали запросы в чат гпт.
0
|
|
|
Вездепух
13241 / 6873 / 1827
Регистрация: 18.10.2014
Сообщений: 17,420
|
||
| 25.01.2025, 22:18 | ||
|
У многих "пионэров" из-за некачественных примеров в книге K&R прямо в мозх прошит карго-культ кастования результата malloc. То есть пресловутой "лампочкой Павлова", вызывающей выделение ненужных кастов, является именно эта последовательность букв - "malloc". Иные буквосочетания (mmap, sbrk...) такого рефлекса обильного кастовыделения не вызывают, по каковой причине для этих функций каст не делается.Доходит иногда даже до такого абсурда (который мы не раз встречали и здесь), когда "пионэр" остервенело кастует все результаты malloc, но в то же время религиозно избегает кастов на расположенные рядом же realloc. Попытки выяснить причины такого поведения как правило повергают испытуемого в состояние ступора с беспорядочным морганием остекленевшими глазами и нечленораздельным бэканьем и мэканьем.
0
|
||
|
0 / 0 / 0
Регистрация: 24.02.2021
Сообщений: 18
|
|
| 28.01.2025, 15:11 [ТС] | |
|
TheCalligrapher, кастом это что? то что не входит в стандартные библиотеки? ну тогда вы знаете что они бесплатные потому что это свободное ПО. Никто там сильно не старался, написано было 1 раз и без исправления ошибок, а только потом выходят стандарты, которые исправляют ошибки.
Есть и другие аллокаторы RAM. Некоторые аллокаторы памяти в Си: dlmalloc (расшифровывается Doug Lea malloc); 2 ptmalloc2 (расшифровывается pthreads malloc) — форк предыдущего, используется в glibc; 2 jemalloc — используется в FreeBSD и Firefox; 2 tcmalloc — от Google; 2 аллокатор MSVC, использующий WinAPI-функции HeapAlloc/HeapFree. malloc почему то, создатели этих аллокаторов, использовать не стали. Добавлено через 2 минуты TheCalligrapher, сам рот открываешь. хочешь сказать что у тебя была такая ошибка и ты ее исправил? или ты просто комментируешь сам не зная что
0
|
|
|
274 / 206 / 30
Регистрация: 26.11.2022
Сообщений: 910
|
|
| 28.01.2025, 16:21 | |
|
davidzhuchkov, Вам сказали что сделать - включите (временно для отладки) в свой проект библиотеку отслеживания повреждений в памяти и выясните в какой момент портится.
0
|
|
| 28.01.2025, 16:21 | |
|
Ошибка при компилировании проекта. [Linker Fatal Error] Fatal: Unable to open file '*.OBJ' [Linker Fatal Error] Fatal: Could not open ~CBuilder6\Projects\Project1.exe (error code 5) Error C2760: синтаксическая ошибка / Fatal error C1004: непредвиденное обнаружение конца файла
ошибка fatal error Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки.
Добавлено:
- Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|