|
0 / 0 / 0
Регистрация: 24.02.2021
Сообщений: 18
|
||||||
Ошибка Fatal glibc error: malloc.c:259904.01.2025, 20:16. Показов 10999. Ответов 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: |
|
270 / 202 / 30
Регистрация: 26.11.2022
Сообщений: 879
|
|||
| 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
|
|
|
270 / 202 / 30
Регистрация: 26.11.2022
Сообщений: 879
|
||
| 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
|
|
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
|||
| 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
|
||||||||||||||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
||||||||
| 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
|
|||
|
270 / 202 / 30
Регистрация: 26.11.2022
Сообщений: 879
|
|
| 25.01.2025, 21:57 | |
|
Стилистические различия скорее всего из за того что в разное время писали запросы в чат гпт.
0
|
|
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
||
| 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
|
|
|
270 / 202 / 30
Регистрация: 26.11.2022
Сообщений: 879
|
|
| 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|