我写了这段代码:
Resident_x * infos_shorted;
Residents=6;
infos_shorted=(Resident_x *)malloc(Residents*(sizeof(Resident_x)));
i=0;
while ((infos_shorted+i)!=NULL){
printf ("%d\n", i);
i++;
}
虽然有人会期望我分配了 6 个内存位置,但当我运行它时,它会一直打印 i 直到我手动终止它。
这就是我为找到我的主要问题的答案所做的工作:
我写的 :
Resident_x * infos_shorted;
Residents=6;
infos_shorted[i].height[8]=7;
infos_shorted=(Resident_x *)malloc(Residents*(sizeof(Resident_x)));
for (i=0; i<=Residents+4; i++){
printf ("%d %d\n", infos_shorted[i].height, i);
}
我得到了正确打印的 infos_shorted[i].height[8] 。那个怎么样;