Как сравнить регистр с массивами и числами

typedef struct {
int codigo;
char Nombre[MAX_NAME];
char Especie[MAX_ESP];
char tipo;
int voto;
bool controles[MAX_CONTROLES];
int num_controles;
}TAnimal;



TAnimal zoo[500];

if (zoo[i].controles == 1){

controles является логическим, так что моя ошибка

ISO C++ forbids comparison between pointer and integer [-fpermissive]

Итак, как я могу сравнить это?

1 ответ

controles[] не является bool, это array of bool,

bool controles[MAX_CONTROLES];

Когда вы используете это так

if (zoo[i].controles == 1){

Используя базовый адрес массива, заставляет его распадаться на указатель, отсюда и ошибка

ISO C++ forbids comparison between pointer and integer [-fpermissive]

В зависимости от ваших требований, я думаю, вы пытаетесь сравнить с одним из элементов в этом массиве controles[], И для доступа к этому элементу вам нужно предоставить индекс этого элемента вместо x в строке ниже

if (zoo[i].controles[ x ] == 1){
Другие вопросы по тегам