Я пока не могу – мне тут valgrind какую-то дичь верещит.
Есть такой вот код:
struct entry_s {
void (*handler) (void);
struct entry_s *next;
};
typedef entry_s entry_t;
typedef struct {
entry_t *first;
entry_t *last;
} entries_t;
// сюда они добавляются в начале рантайма
static entries_t entries = { NULL, NULL };
// где-то ниже по коду дела
entry_t *entry = entries.first;
while (entry) {
entry->handler();
entry = entry->next; // valgrind: Invalid read of size 8
}
Вот скажи мне, как неойтишник, какого хуя ему не нравится?

Чот отдельным минимальным примером не воспроизводится… Ну что ж, будем дебажить дальше. Память то может портить кто-то другой. А валгринд лишь указывает на то, что увидел.
Чёт вспомнил один эпичный тред с лора со схожей завязкой
https://www.linux.org.ru/forum/development/11744063
приятного чтения
Посмотрел знакомых мне пятизвёздочников в той теме… кого-то даже знаю лично в реале, с другими просто были хорошие обсуждения, узнавал что-то новое или наоборот…
Позову ли я их на LT? Сейчас точно нет, банально стыдно звать в пустой (перекати-поле.jpg) /Dev или в свино-гомосячий /Клуб …
Такие дела 😔