C で malloc を使用して静的変数 (関数内) を開始しようとしていますが、「initializer not constant エラー」が発生しています。Cで非定数で静的を開始できないことは知っていますが、解決策を考えられる人はいますか? これと同じ効果を得るには、コードが必要です。
static int *p = (int *)malloc(sizeof(int));
トリック/回避策はありますか?
編集:フラグが高くなるたびに呼び出される関数があります。この関数では、新しいスレッドを作成して開始しています。構造体へのポインターを宣言し、malloc を使用してメモリを割り当て、このポインターをスレッドに渡します。その後、関数は制御を返します。関数を再入力すると、最初に開いたスレッドがまだ実行されているため、最初にスレッドに渡したメモリ領域にアクセスできるようにしたいと考えています。そのため、最初の呼び出しで malloc し、その後の呼び出しで同じアドレスを使用できるように、静的が必要です。このようにして、スレッドから情報を取得できます。これはすべて、グローバル変数の使用を避けるためです。