Мой код на Python вызывает функцию C в нативной библиотеке (также написанной мной). Функция принимает две строки в качестве аргументов и возвращает свой ответ в виде строки. Две строки аргументов, которые python передает в библиотеку C, читаются только библиотекой C, поэтому я не беспокоюсь об их управлении памятью. AFAIK, их память будет выделена python и будет освобождена, когда среда выполнения python покажется уместной.
Однако я понимаю, что память строки, которую возвращает библиотека C, должна управляться явно. Один способ, которым я могу это реализовать: функция C вызывает массив символов, заполняет его ответом и возвращает из функции. Код Python использует возвращаемую строку и должен вызвать libc free для этой строки или вызвать другую функцию из той же библиотеки C, которая позаботится об освобождении памяти.
Есть ли другой способ сделать это? Предлагает ли ctype какие-либо служебные функции, которые упрощают освобождение памяти структур данных, возвращаемых нативными библиотеками?