0
我正在尝试使用如下定义的结构'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,分别包含在x,y,和等效折射率的somtab元件(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");
当我更改代码以上述建议,它不能编译,建议我将其转换回原始代码。当然,calloc应该返回数组第一个字节的地址,但是当访问单个元素时,它应该恢复为传值。 错误C2232:' - > sommet :: x':左操作数具有'结构'类型,请使用'。' 错误C2819:type'sommet'没有重载成员'operator'>' – freewilly
在做出上述两个建议的更改后,它仍然在'check3'之前崩溃。 – freewilly