作为函数参数的结构数组

0 c++ arrays struct

我有一个结构数组,我只想将它传递给函数以对其进行排序.在将结构数组传递给函数时,我做错了什么?原型,调用和定义中有哪些错误?

注意 - 我意识到我没有初始化结构数组.在我的实际代码中,数组包含来自其中的文本文件的数据.这与我提出的问题无关.所以请不要评论数组中没有任何内容.

这是一些我无法工作的代码示例:

#include <iostream>
using namespace std;

struct checkType
{
    char date[12];
    char checkNum[8];
    float amount;
};

void bubbleSort(checkType, const int);

int main()
{
    const int NUM = 5;
    checkType checkArray[NUM];

    bubbleSort(checkArray, NUM);

    return 0;
}

void bubbleSort(checkType array[], const int SIZE)
{
    bool swap;
    checkType temp;

    do
    {
        swap = false;

        for (int count = 0; count < (SIZE - 1); count++)
        {
            if (strcmp(array[count].date, array[count + 1].date) > 0)
            {
                temp = array[count];
                array[count] = array[count + 1];
                array[count + 1] = temp;
                swap = true;
            }
        }
    } while (swap);

}
Run Code Online (Sandbox Code Playgroud)

此代码产生此错误:

错误C2664:'void bubbleSort(checkType,const int)':无法将参数1从'checkType [5]'转换为'checkType'

那么我试着将函数调用从更改bubbleSort(checkArray, NUM);bubbleSort(checkArray[NUM], NUM);

此代码产生以下错误:

错误LNK2019:函数_main中引用的未解析的外部符号"void __cdecl bubbleSort(struct checkType,int)"(?bubbleSort @@ YAXUcheckType @@ H @ Z)

错误LNK1120:1个未解析的外部

有人可以解释一下我做错了什么吗?

Ed *_* S. 7

前瞻声明:

void bubbleSort(checkType, const int);
Run Code Online (Sandbox Code Playgroud)

定义:

void bubbleSort(checkType array[], const int SIZE)
Run Code Online (Sandbox Code Playgroud)

那些不一样.前瞻性声明应为:

void bubbleSort(checkType[], const int);
Run Code Online (Sandbox Code Playgroud)