C ++ Ошибка с кодом

0

В настоящее время я изучаю C++ и имею программу с этим кодом, который работает нормально. Я скопировал этот код из моей первой программы в свою вторую, но я не могу понять, что вызывает ошибку. Ошибка: "Ошибка: тип аргумента StudentResults несовместим с типом параметра StudentResults

Код выглядит следующим образом: я знаю, что некоторые из них цитируются, это просто остановить некоторые вещи от работы, пока я не получаю эту ошибку отсортированной. Это всего лишь образец кода, который, по моему мнению, ошибочен, если требуется больше кода, я добавлю остальные. Ошибка там, где ** **, на самом деле это не код, чтобы выделить, где ошибка. благодаря

//Prototypes - common
void press_key(HANDLE hdl, int col, int row);
void message(HANDLE hdl,  char mess[], int col, int row);
char again(HANDLE hdl, int col, int row);
void set_menu(HANDLE hdl );
int  get_option(HANDLE hdl, int c , int r , int min , int max);
void gotoXY( HANDLE hdl, SHORT x, SHORT y );
void clrScr(HANDLE hdl );
void getscreen(HANDLE hdl, char name[]);
void validateString(HANDLE hdl, int col, int row, int min, int max,char str[], char errMessage[]);
int validateNumber(HANDLE hdl, int col, int row, int min, int max, char errMessage[]);

//prototypes - menu
int  populateStock( struct   StudentDetails   student_details[]);
void reportResults(HANDLE hdl, struct StudentDetails student_details[], int size);
void displayBySurname(HANDLE hdl,struct StudentDetails student_details[], int  size);
void displayByStudentNumber(HANDLE hdl, struct StudentDetails student_details[30], int size);
void updateStock(HANDLE hdl, struct StudentDetails student_details[], int size );
void addStock(HANDLE hdl,  struct StudentDetails student_details[], int & size);

struct StudentResults
{
int candidateNo;
char forename[20], surname[20];
int section[5];
};


int _tmain(int argc, _TCHAR* argv[])
{
// insert HANDLE hdl
HANDLE hdl = GetStdHandle( STD_OUTPUT_HANDLE );

    //Data Declaration
    int option, size;
    struct StudentResults student_details[30] ;

    // fill array with some stock details
    size = populateStock(student_details);   // error here

    do
    {
        set_menu(hdl);
        option=get_option(hdl, 44,20,1,7);      
        switch(option)
        {
             case 1:;  //reportStock(hdl, student_details, size);
             case 2:;  //displayStockByCat(hdl, student_details, size); 
             case 3:;  //searchStock(hdl, stock_details, size);
             case 4:;  //searchStockByDesc(hdl, stock_details, size);
             case 5:;  //updateStock(hdl, stock_details,size);
             case 6:; //addStock(hdl, stock_details,size);
        }
    } while (option !=7);

    return 0;
}
int populateStock( struct StudentResults student_details[])
{
    int size;

    student_details[0].candidateNo  =  1004;    
    strcpy_s(student_details[0].forename , "Joe");          
    strcpy_s(student_details[0].surname , "Bloggs"); 
    student_details[0].section[0] = 20.87;
    student_details[0].section[1] = 20.87;
    student_details[0].section[2] = 20.87;
    student_details[0].section[3] = 20.87;
    student_details[0].section[4] = 20.87;


return 1;
}
  • 4
    Где объявлен populateStock?
  • 1
    Вы также хотите удалить ** из кода и выделить ошибку комментарием! ** очень вводит в заблуждение для программ на C / C ++
Показать ещё 4 комментария
Теги:
arguments

2 ответа

1
Лучший ответ

Это означает, что то, что передается как параметр populateStock, не является типом требуемого параметра. Требуется другой тип параметра. Поскольку вы не отправляли код функции populateStock я не могу точно указать вас, но это лучшее, что я могу вам рассказать.

  • 0
    Спасибо за помощь, высоко оценили, нашли ошибку.
  • 0
    Добро пожаловать.
0

Из вашей функции populateStock определение:

int  populateStock( struct   StudentDetails   student_details[]);

populateStock принимает struct StudentDetails как тип аргумента, но ваш передавая ему объект типа struct StudentResults, который является несовместимым типом.

struct StudentResults student_details[30] ;

// fill array with some stock details

/*This will generate an error as your passing an incompatible type */
size = populateStock(student_details); 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню