初期サイズを持たない構造体の配列を使用しようとすると問題が発生します。 どうすればよいですか?これは私の構造体である:C++でグローバルに動的に割り当てられた構造体
struct carbon {
double temp;
double mass;
rowvec::fixed<3> position;
rowvec::fixed<3> velocity;
rowvec::fixed<3> force;
} *atom;
私のプログラムの間、私はこのような構造体配列のサイズを割り当てています:
atom = new carbon[PARTICLE_NUM];
問題は、私はその後、他のファイルで、この構造体を使用する方法です。私は、ヘッダファイルを作成し、それ
extern struct carbon *atom;
でこれを置くしかし、それは、このエラーを思い付くしました:
setup_pos.cpp:19: error: invalid use of incomplete type ‘struct carbon’
system_setup_distances.h:18: error: forward declaration of ‘struct carbon’
私はグローバル変数を使用すべきではないけど、私はちょうどしたいですまずこれをテストします。 ご協力いただきありがとうございます。
なぜ動的な「配列」を使用していますか?なぜ「ベクトル」ではないのですか?それとも、普通の配列ですか? –
コンパイル時にサイズを知らなくても、グローバルベクトル構造体を作成するにはどうすればよいですか? – Eddy
'vector'の全体点は、そのサイズが動的であることです。私はあなたが "ベクトル構造体"の意味を理解していませんが、 –