调用带参数的函数,其中一个参数是 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);
.
我有一个程序,其中有一个函数可以按键字段对结构数组的元素进行排序。但是,当我调用函数 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);
.