0
我正在爲我的嵌入式C類的分配,我遇到了我似乎無法來解決問題。我的問題是++i
只會改變一次。在循環運行i
第一時間將0
,第二次i
是1
但i
後總是會1
無論多少次的循環迴路。任何人都知道問題可能是什麼?我把printf("%d\n", i);
只是看看i
是否改變。++我在while循環只換一次
void addCar() {
char choice = 'y';
int i = 0;
while((choice == 'y' || choice == 'Y') && i < MAX_CAR) {
printf("Make: ");
scanf("%s", fleet[i].make);
getDate(1, i);
getDate(2, i);
printf("Purchaseprice: ");
scanf("%lf", &fleet[i].purchasePrice);
++i;
printf("%d\n", i);
printf("Do you want to add another car? (Y/N)");
scanf("%s", &choice);
}
}
感謝您的答覆。但是,這真的可以導致++我不改變每一個循環? –
@ MartinHjelm-Wallborg它絕對可以改變堆棧上的其他變量。您是否嘗試過修復該代碼? – Evgeny
@ MartinHjelm-Wallborg如果內存分配是連續的,那麼他在'choice'之後的下一個字節是'i'的第一個字節,所以不是在'choice [1]中寫'0'(空終止字符)'it將它寫入'i'的一個字節中。 – zakinster