私はこのコードを書いています:
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] が正しく印刷されます。それはどうですか。