mallocメソッドを使用して整数の配列を作成したいと思います。この配列をグローバルにして、プログラムのどこでも使用できるようにしたいと思います。次のようなヘッダーファイルにコードを挿入しました。
static int *pieces;
次に、そこに必要な数値を入力する関数があります。関数は名前空間にあり、名前空間は独自の.cppファイルに実装されています。ただし、ヘッダーファイルをmain.cにインポートし、次のような配列を作成する名前空間から関数を呼び出します。
pieces = malloc(sizeof(int) * 128);
しかし、mainの配列内の数値にアクセスしようとすると(配列を作成する関数を呼び出した後)、クラッシュして、ピースが初期化されていないと表示されます。しかし、私が持っている関数では、それを作成し、その中の数値をうまく操作することができます。ピースを静的変数にすることで、どこかで関数が変更(または設定)されるたびに、それがどこでも変数の使用に影響を与えるという印象を受けました。基本的に私が言おうとしているのは、呼び出した関数で設定したのに、なぜメインでピースが設定されていないように見えるのかということです。