C++ 代码错误

标签 c++ arguments

我目前正在学习 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;
}

最佳答案

这意味着,作为 populateStock 参数传递的不是它采用的参数类型。它采用不同类型的参数。由于您没有发布函数 populateStock 的代码,我无法准确指出您的位置,但这是我能告诉您的最好的信息。

关于C++ 代码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20855147/

相关文章:

c++ - 支持光栅图像的免费 G​​IS 库的建议

c++ - 如何从一个函数返回多个类型?

c++ - 声明为类字段而不是全局变量

c++ - 在 R 中使用 C++ 编译错误 : "RcppArmadillo.h: No such file or directory"

Javascript 将对象分解为参数

c - 在 C 中使用带有非选项参数的 getopt

powershell - Powershell:如何将参数数组传递给将在命令上应用的参数

java - 不带参数的继承构造函数

c++ - 检测对象是否仍处于事件状态或已被销毁

c++ - OpenGL 当模板测试失败而深度测试成功时如何写入模板缓冲区?