Вы должны передать длину данных обратно от MyFunction
. Кроме того, убедитесь, что вы знаете, кто выделяет память и кто должен ее освободить. Для этого есть разные модели. Довольно часто я видел:
int MyFunction(unsigned char* data, size_t* datalen)
Затем вы распределяете данные и передаете данные. В результате (int) должно быть указано, достаточно ли длинен ваш буфер (данные) ...