调用带参数的函数,其中一个参数是 C++ 中的结构数组?

Invoking function with paremeters, one of which is an array of structures in C++?

我有一个程序,其中有一个函数可以按键字段对结构数组的元素进行排序。但是,当我调用函数 Insertion(a[],7) - 我传递数组及其大小时,编译器会在“]”标记之前给出错误预期的主表达式。请问我做错了什么?

#include <iostream>
using namespace std;
struct CElem
{
    int key;
};
CElem a[7];
void Insertion(CElem m[],int n)
{
    CElem x;
    int i;
    int j;
    for (i = 0; i < n; i++)
    {
        x = m[i];
        j = i-1;
        while (j >= 0 && x.key < m[j].key)
            m[j+1] = m[j--];
        m[j+1] = x;
    }
}

int main()
{
    a[0].key=32;
    a[1].key=45;
    a[2].key=128;
    a[3].key=4;
    a[4].key=-9;
    a[5].key=77;
    a[6].key=-7;
    Insertion(a[],7);

    return 0;
}

你只需要将指针传递到数组的开头: 插入(a, 7);

你的Insertion方法的参数m是CElem*类型。变量 a 也是 CElem* 类型,所以你应该只给方法一个,比如 Insertion(a,7);.