Всем привет.
Столкнулся с проблемой странной работы malloc. При зарезервированном под кучу килобайте и запросе памяти под структуру размером 25 байт память выделяется первых 2 вызова, потом malloc начинает всегда возвращать 0.
Пример кода, воспроизводящего ошибку
Требуется консультация опытных товарищей. Замечу, что:
a) пробовались разные сборки SDCC, в т.ч. и старые, и свежие;
b) для задания размера кучи мануал советует перекомпилировать _heap.c с новым размером:
sdcc -c _heap.c -DHEAP_SIZE=2048
но если добавить ключик -mz80, SDCC сразу начинает ругаться на конструкцию __xdata. И хотя её можно закомментировать, я не уверен, что это хорошая идея.
1. Чего там с malloc не так?
2. Как задавать размер кучи в случае с Z80 (который явно не предусмотрен?)?
Вот такие вопросы.
К оф.разрабам пока не обращался, может сами разрулим. Т.к. есть подозрение, что может это и не баг. Филипп отбрил, сказал, нет времени.