在c ++和Initialisation中将内存分配给结构数组

时间:2014-09-16 21:14:09

标签: c++ arrays struct

我对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还是不需要?如果是,那么展示一小段代码会有所帮助。我已经尝试了很多,但没有成功

0 个答案:

没有答案