Прежде всего, pay
и Ez
являются указателями, но вы никогда не сделаете их указанными где-либо действительными.Это неопределенное поведение, которое может привести к ошибке сегментации или сделать что-то совершенно другое.Измените это:
payl* pay;
expected* Ez;
На это:
payl* pay = new payl;
expected* Ez = new expected;
И не забудьте удалить их в конце:
delete pay;
delete expected;
Кроме того, ваши сравнения нене работает таким образом.Вместо этого:
for(int i=0; i>itr; i++){
for(int j=0; j>eitr; j++){
Вам следует развернуть >
и сделать это вместо этого:
for (int i = 0; i < itr; i++) {
for (int j = 0; j < eitr; j++) {
С этими изменениями он правильно печатает каждый экземпляр каждого элемента в каждом массивеэто не то же самое, что другой элемент.Это означает не только последний, где 5
в одном и 6
в другом.Это не то, как вы проверяете, равны ли два массива.Вместо этого цикл должен выглядеть следующим образом:
for (int i = 0; i < itr; i++) {
if (pay->arrayp[i] != Ez->arraye[i]) {
cout<<"incorret matching"<<pay->arrayp[i]<<"!="<<Ez->arraye[j]<<endl;
}
}