我编写了一个基本的get函数,它接受结构的元素,并将它们复制/存储到单独的变量中。我想做同样的事情,除了将结构数组存储到数组变量中(关键是我想使用我已经编写的get函数)。如果不嵌入我的第一个函数,我可以很容易地做我想做的事情,但我需要在第二个函数中使用我的第一个函数,并且遇到了一些问题。
我的一个错误是嵌入式get函数中没有匹配的函数调用我放在第二个函数中(我认为我将变量与我的第一个get函数正确匹配(即n,c, a,和x))。
感谢您的光临。
#include <iostream>
#include <cstdlib>
using namespace std;
struct ABC
{
int n;
char c;
double a[3];
};
void get( int & n, char & c, double a[3], const ABC & x )
{
n = x.n;
c = x.c;
for (int i = 0; i < 3; i++){
a[i] = x.a[i];
}
}
void get( int n[], char c[], double a[][3], const ABC x[], int elements )
{
for (int i = 0; i < elements; i++){
get(n, c, a, x);
}
}
int main()
{
ABC x = {number, m, {1, 2, 3}};
ABC xx[4] = {
{123, 'A', {1.1, 1.2, 1.3}},
{234, 'B', {2.1, 2.2, 2.3}},
{345, 'C', {3.1, 3.2, 3.3}},
{456, 'D', {4.1, 4.2, 4.3}}
};
int n;
char c;
int a[] = {};
int n1 [4] = {};
char c1 [4] = {};
double a3 [4] [3] = {};
int elements = 3;
get(n1, c1, a3, xx, elements);
return 0;
}
答案 0 :(得分:1)
答案 1 :(得分:1)
在我看来,在使用数组的get函数中,您总是将值存储在每个数组的相同位置。 你应该做的事情可能是:
get(n [i],c [i],a [i],x [i]);