私は構造を持っています
typedef struct my_s {
int x;
...
} my_T;
my_t * p_my_t;
のアドレスを設定したいのですがp_my_t
、NULL
これまでのところ、これを実行しようとした方法は次のとおりです。
memset (&p_my_t, 0, sizeof(my_t*))
しかし、これは私には正しく見えません。これを行う正しい方法は何ですか?
質問の修正 - 根本的により複雑な質問をする:
これが私がやろうとしていることです:
- A と B の 2 つのプロセス
- Aのmalloc p_my_t、BにはN個のスレッドがあり、それにアクセスできます
- A で削除を開始しますが、B のスレッドがまだ使用している可能性があるため、単純に解放することはできません。
- したがって、関数を呼び出し、p_my_t のアドレスを B に渡して、そのアドレスを B で NULL に設定し、B の他のスレッドが使用できなくなるようにします。
- Bからコールバックした後、Aのメモリを解放します
注意: プロセス間の共有メモリを介してメモリ割り当てを管理する標準的な方法はありません。何が起こっているのかについて、かなり慎重に考える必要があります。