Выражение должно иметь ошибку типа указателя на объект в массиве

#arrays #c #structure

#массивы #c #структура

Вопрос:

 #include <stdio.h>
#define DIM 10

typedef struct{
    int nelem; //amount of numbers in the array
    int vector[DIM];
}t_vector_int;

int main(){
    t_vector_int vect={5,{3, 23, 56, 109, 238}};
    int n, i=0;

    printf(" Vector inicial: 3, 23, 56, 109, 238nnIntroduzca un valor entero: ");
    scanf("%d", amp;n);
    while(vect[i] <= n){

    }

    return 0;
}
  

Я получаю ошибку в строке 15 while(vect[i] <= n){ , я знаю, что это потому, что vect определен как {5,{3, 23, 56, 109, 238}} , но на самом деле не знаю, как проверить, принадлежит ли n vect .

Ответ №1:

Вам нужно использовать элемент vector , а не саму структурную переменную.

Изменить

  while(vect[i] <= n)
  

Для

 while(vect.vector[i] <= n)