我迷路了,試圖找出運行時錯誤。我有一個結構數據類型,並在數組items[]
中實現它。在結構中,定義了一個char name
。 我還在讀取使用cin的用戶輸入到char
數據類型。比較字符會導致總線錯誤
i=0;
do {
printf("%c\n", items[i].name);
printf("%c\n", itemname);
//if (items[i].name == itemname)
//found=true;
i++;
} while (i<numofitems || found);
如果我去掉if語句,該printf("%c\n", itemname);
似乎運行數千次,然後Bus error: 10
。注意numofitems是目前剛剛5
從它目前正在編寫方式輸出:
A
C
B
C
C
C
D
C
E
C
任何想法,爲什麼我不能簡單地比較,如果一個字符相當於另一個?
「總線錯誤」,我相信意味着你正在嘗試使用未正確對齊的內存地址。你可能會超過一些限制。 – 2013-04-05 00:57:52
doh!它與while循環中的代碼無關。 +5 – 2013-04-05 00:58:40