我有一個這樣的結構在 「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的頂部做這些assigments我得到「'objmesh'沒有命名一個類型」的錯誤。
但是,當我把所有這些分配在一個函數中parser.cpp(而obj objmesh;具有全局範圍),我沒有錯誤,並編譯好。
任何人都可以想到爲什麼會出現這種情況的原因嗎?我使用MinGW的GNU 4.6 C++編譯器
你是說分配不在函數中嗎? – 2013-02-10 00:31:19
墊子,當作業是全球性的,我得到一個錯誤。當任務在一個函數中,但聲明仍然是全局的,我沒有錯誤。 – 2013-02-10 00:32:58
你正在編寫C或C++嗎?因爲C++的答案(使用構造函數)不會工作在C – MSalters 2013-02-10 00:41:50