Здравствуйте, ra88, Вы писали:
R>Если данные найдутся, то вы вернёте указатель на const BYTE как указатель на BYTE. Это замечательный хак. У меня gcc только warning выдал, и после этого можно портить const данные.
R>Если не найдутся, то вы выделяете память внутри функции. Кто её будет освобождать? как вы узнаете выделилась новая память или вернулась старая?
Вы правы, я поторопился, когда писал

Правильно вот так
[ccode]
const BYTE* get_need_data(const BYTE* source_data, DATA_TYPE type, BYTE** need_data_buf);
[ccode]
Память буду освобождать, если need_data_buf будет не NULL.