в статической функции? Как можно её потом освободить?
Ну она же просто статическая... Или вы имеете ввиду константная?
Статическая, просто хочу обращаться к ней, не создавая экземпляр класса
Использовать умные указатели ? unique_ptr, etc
Окей, спасибо
вопрос в корне неверный, т.к. статический метод ничем не отличается от простой функции, статическая функция значит тоже другое нежели статический метод и динамическая память вообще никак не связана ни с одним из предыдущих понятий
Я про то, что не смогу написать очищение выделенной память в деструкторе
А почему, собсно? Вполне можно, просто деструктор сильно позже вызван будет
Так же как и любую другую динамическую память (динамический объект). Для начала надо хранить на этот объект ссылку...
Тут надо себя заставить...
Ну, потому-что я не создаю экземпляр класса
Значит делай аллоцируемый буфер глобальным и очищай на atexit() или ещё где-то. А проще - отдавай владение наружу и пусть тот, кто пользуется, сам чистит. Ещё вариант: внутри своей статической функции создай локальный статический объект, который в своем деструкторе этот буфер деаллоцирует. Но это будет в момент выгрузки либы/закрытия программы.
Тогда не распарсил. Я подумал, что один объект статический
Понял, спасибо) Ну, второй вариант мне не подходит, тк функция, где выделяется память может вызываться неограниченное кол-во раз
Обсуждают сегодня