Я работал с некоторой функцией языка C, которая будет вызываться из приложения Progress 4GL, и у меня возникли следующие сомнения:
Функция C использует malloc для динамического выделения массива символов, и идея состоит в том, что указатель, который выделяет эту память, будет возвращен процессу Progress 4GL, который первоначально отправил тип данных MEMPTR для хранения результата метода C.
По сути, MEMPTR из Progress должен быть отправлен в функцию C, чтобы «получить» сгенерированный C массив и использовать его, когда область видимости возвращается к нему из функции de C (проход по ссылке между обоими языками, где метод C «заполняет» прогресс MEMPTR Переменная).
Мои вопросы:
Когда процесс Progress завершается и переменная MEMPTR «освобождается», освобождает ли он также память, выделенную malloc в функции C?
и
Если я освобожу память, выделенную malloc, в функции C, я предполагаю, что процесс Progress получит данные мусора. Это правильно?
Спасибо за ваше время и помощь.
Привет.