我对c ++编程很新。至少对指针的概念不太满意。 这是我定义为大型程序
的一部分的结构typedef struct _MTLinfo {
char* name;
GLfloat Ns;
GLfloat Ka[3];
GLfloat Kd[3];
GLfloat Ks[3];
GLfloat Ni;
GLfloat d;
GLuint illum;
GLfloat Km;
char* mapKd;
char* mapbump;
} MTLinfo;
现在我想使用一系列这样的结构。但是,有时我会立即抛出内存损坏错误,有时候程序也无法正常工作。
我的任务是将某些值存储在结构数组中。我一直试图开始工作的代码是
MTLinfo* readmtl(GLMmodel* glmmodel,char* filename) {
int index=-1;
MTLinfo *info;
/*Line Below is how I am allocating memory */
info=(MTLinfo*)malloc((glmmodel->nummaterials)* sizeof *info) ;
/* I have some other commands like the one below to store some text*/
/* into the array . They are not included because of irrelevance. */
fscanf(file,"%s",&info[++index].name
此外,在某些地方,我没有初始化任何价值。例如,info [4] .d可能无法在任何地方定义。我应该首先将每一件事做成NULL / 0还是不需要?如果是,那么展示一小段代码会有所帮助。我已经尝试了很多,但没有成功