我一直在使用一些将从 Progress 4GL 应用程序调用的 C 语言函数,我发现自己有以下疑问:
C 函数使用 malloc 动态分配字符数组,其想法是分配该内存的指针将返回到 Progress 4GL 进程,该进程最初发送 MEMPTR 数据类型来保存 C 方法的结果。
基本上,来自 Progress 的 MEMPTR 必须发送到 C 函数以“接收”C 生成的数组并在作用域从 de C 函数返回到它时使用它(C 方法“填充”MEMPTR 进度的两种语言之间的引用传递多变的)。
我的问题是:
当 Progress 进程完成并且 MEMPTR 变量被“释放”时,它是否也释放了 C 函数中分配的 malloc 内存?
和
如果我在 C 函数中释放 malloc 分配的内存,我猜 Progress 进程将收到垃圾数据,这是正确的吗?
感谢您的时间和帮助。
问候。