我试图使用结构' sommet'的数组,如下所定义。
typedef struct sommet {
double x;
double y;
char nom[100];
struct arete2* voisin;};
sommet* somtab = (sommet *) calloc(nbnoeud, sizeof(sommet));
if(somtab = NULL){
puts("Calloc error");
exit(1);
}
在我的代码中,我有三个独立的数组,xtab,ytab和nomtab,它们分别包含等效索引的somtab元素的x,y和nom值(即somtab [0] .x = xtab [0], somtab [1] .x = xtab [1]等。)当设置每个somtab元素时,我的程序会崩溃,而且我从未进入" check3"
puts("check1");
for(a=0; a<nbnoeud; a++){
printf("Read item %d; \t \t \t %s - (%lf, %lf). \n", a, nomtab[a], xtab[a], ytab[a]);
}
puts("check2");
for(a=0; a<nbnoeud; a++){
somtab[a].x = xtab[a];
somtab[a].y = ytab[a];
strcpy(somtab[a].nom, nomtab[a]);
}
puts("check3");
答案 0 :(得分:0)
使用指向指针的指针。
sommet** somtab = malloc(nbnoeud*sizeof(sommet));
使用
somtab[a]->x = xtab[a];
somtab[a]->y = ytab[a];
strcpy(somtab[a]->nom, nomtab[a]);