Здравствуйте, DirtyGarry, Вы писали:
DG>Есть блок данных. В этом блоке нужно найти данные и вернуть указатель на них. Но иногда данных в самом блоке нет, а есть лишь описание (размер, откуда прочитать и т.п.). Родился следующий (условный) прототип функции
DG>BYTE* get_need_data(const BYTE* source_data, DATA_TYPE type, BYTE* need_data_buf)
замените последний параметр на bool *allocated. если его поставила функция в 1, то надо освободить возвращённый указатель, если нет, то не надо. проверка флага как-то более естественна имхо.