「parser.h」にこのような構造体があります
struct obj{
char *filename;
unsigned long nverts;
unsigned long curvert;
double (*verts)[3];
unsigned int *faces[3];
};
typedef obj obj;
およびparser.cpp
私は宣言しています
obj objmesh;
objmesh.filename="c://temp//wings.obj";
objmesh.nverts = 20;
objmesh.verts = (double (*)[3]) malloc( objmesh.nverts * sizeof(double[3]) );
objmesh.curvert = 0;
parser.cppの上部でこれらの割り当てを行うと、「'objmesh'はタイプに名前を付けていません」というエラーが発生します。
しかし、これらすべての割り当てをparser.cppの関数に入れると(obj objmesh;はグローバルスコープを持っています)、エラーは発生せず、正常にコンパイルされます。
誰かがそれが事実である理由を考えることができますか?Mingw Gnu 4.6C++コンパイラを使用しています