История изменений
Исправление firkax, (текущая версия) :
Самый часто применяемый и самый неправильный способ - написать в библиотеке функцию foo_new, в которой будем выделять память с помощью malloc и прочего подобного.
Это делают не для рещения «проблемы приватных структур» а для упрощения кода - вместо гирлянд из malloc и инициализаций просто вызов функции-конструктора.
И там внутри не обязательно malloc, может быть какой-то кастомный аллокатор, оптимизированный конкретно под этот тип объектов и спрятанный от вызывающего кода.
Исправление firkax, :
Самый часто применяемый и самый неправильный способ - написать в библиотеке функцию foo_new, в которой будем выделять память с помощью malloc и прочего подобного.
Это делают не для рещения «проблемы приватных структур» а для упрощения кода - вместо гирлянд из malloc и инициализаций просто вызов функции-конструктора.
И там внутри не обязательно malloc, может быть какой-то кастомный аллокатор, оптимизированный конкретно под этот тип объектов.
Исходная версия firkax, :
Самый часто применяемый и самый неправильный способ - написать в библиотеке функцию foo_new, в которой будем выделять память с помощью malloc и прочего подобного.
Это делают не для рещения «проблемы приватных структур» а для упрощения кода - вместо гирлянд из malloc и инициализаций просто вызов функции-конструктора.