私はProgress4GLアプリケーションから呼び出されるC言語関数で作業してきましたが、次の疑問がありました。
C関数はmallocを使用してcharの配列を動的に割り当てます。その考え方は、そのメモリを割り当てるポインタが、Cメソッドの結果を保持するために最初にMEMPTRデータ型を送信したProgress4GLプロセスに返されるというものです。
基本的に、ProgressからのMEMPTRをC関数に送信して、Cで生成された配列を「受信」し、スコープがde C関数から配列に戻るときに使用する必要があります(CメソッドがMEMPTRの進行状況を「埋める」両方の言語間の参照パス)変数)。
私の質問は:
Progressプロセスが終了し、MEMPTR変数が「解放」されると、C関数でmallocに割り当てられたメモリも解放されますか?
と
C関数でmallocに割り当てられたメモリを解放すると、Progressプロセスがガベージデータを受け取ると思いますが、これは正しいですか?
お手数をおかけしますが、よろしくお願いいたします。
ご挨拶。