我在我的程序中实现一个文件的结构体,但是在结构体中的一些数组我不知道大小.数组的大小存储在另一个变量中,但是在结构体填充之前它是未知的.
struct Vertex { float x; float y; float z; }; struct myFile { ulong nVertices; Vertex vertices[nVertices]; };
解决方法
你应该在你的结构中存储一个指针:
Vertex *vertices;
然后在运行时分配内存:
myFile f; f.vertices = malloc(nVertices * sizeof(Vertex)); if (f.vertices == 0) handle_out_of_memory(); f.nVertices = nVertices;
记得在完成时释放内存:
free(f.vertices);