Могу ли я освободить() что-то в C, которое было использовано malloc() в C++?C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Могу ли я освободить() что-то в C, которое было использовано malloc() в C++?

Сообщение Гость »


Я пишу оболочку для библиотеки, написанной на C++, чтобы ее можно было использовать из C. В коде оболочки я делаю множество копий базовых данных контейнеров C++. Например. если библиотечная функция C++ возвращает std::vector, моя оболочка вернет структуру вида {size_t len; size_t размер; void *arr;, где arr содержит копию данных из вектора. Когда пользователь закончит работу с данными, он должен освободить их.

Мой вопрос: разрешено ли всегда пользователю (C-код) вызывать free() для указателей, которые были malloc()< /code>:d в C++? Или мне нужно создать эквивалентную функцию в моем коде-оболочке?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»