ふとおもった。
今まで、カオル姫方式の話の中に出てきた、
メモリを、ハッシュマップに入れるように、連想配列の中に入れ、
つまり、
typedef struct _IKaoruMap { char key[50]; // キー名は49バイト以内 int kind; // val の型 void *val; }IKaoruMap;
という形で取って、
IKAORUMAP_Put(IKaoruMap *mp,char *key,int kind,void *val);
で、データを入れて、
IKAORUMAP_Get(IKaoruMap *mp,char *key);
で値をとってくるという考え方なんだけど、
この考え方だと、
・ある画面は g画面番号_
・ある業務内では、g業務番号_
(業務の中に画面が存在する。だから、受注業務は2、受注画面は201
(業務2の中の01番)みたいなかんじ)
・ファイルはFファイル番号
みたいなとりきめにすると、
業務を抜けたときは、フリー関数を呼び出し
g抜ける業務番号_
のメモリをすべて解放する(IKaoruMapの要素からはずす)
画面を抜けたときは、フリー関数を呼び出し
g抜ける画面番号_
のメモリをすべて解放する(IKaoruMapの要素からはずす)
プログラムを抜けたときは、フリー関数を呼び出し
すべての
のメモリをすべて解放する(IKaoruMapの要素からはずす)
ってすると。。確実にメモリが解放できるかも?
って、思った。以上。