У меня есть архитектура плагина, где я вызываю функции в динамической библиотеке, и они возвращают мне char*, который является ответом, он используется на более позднем этапе.
Это подпись функции плагина:
char* execute(ALLOCATION_BEHAVIOR* free_returned_value, unsigned int* length);
где ALLOCATION_BEHAVIOR должен быть: DO_NOT_FREE_ME, FREE_ME, DELETE_ME, где плагин (в библиотеке) сообщает мне, как плагин выделил строку, которую он только что вернул: DO_NOT_FREE_ME сообщает мне, что это это переменная, которую я не должен касаться (например, const static char*, которая никогда не изменяется) FREE_ME говорит мне, что я должен использовать free() для освобождения возвращаемого значения, а DELETE_ME говорит мне использовать delete[] для получения избавиться от утечек памяти.
Очевидно, что я не доверяю плагинам, поэтому я хотел бы иметь возможность проверить, что если он скажет мне free() переменную, действительно, это действительно может быть освобождено... Возможно ли это использование сегодняшняя технология C/С++ для Linux/Windows?