Я потерялся, пытаясь выяснить ошибку времени выполнения. У меня есть тип структуры struct и его реализация в массиве items[]
. В структуре существует char name
. Я также читаю пользовательский ввод, используя cin, в тип данных .сравнение символов вызывает ошибку шины
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);
если я раскомментировать, если заявление, то printf("%c\n", itemname);
, кажется, бежит в тысячи раз с последующим Bus error: 10
. обратите внимание, что numofitems является ток только 5.
Выход из пути она в настоящее время написано:
A
C
B
C
C
C
D
C
E
C
Любая идея, почему я не могу просто сравнить, если один символ эквивалентен другому?
«Ошибка шины», я считаю, вы пытаетесь использовать адрес памяти, который неправильно выровнен. Вероятно, вы преодолеваете какой-то предел. –
doh! он не имеет ничего общего с кодом в цикле while. +5 –