C++ C++;:我想将数据从struct复制/存储到单个数组中
我编写了一个基本的get函数,它接受结构的元素,并将它们复制/存储到单独的变量中。我想做同样的事情,除了将结构数组存储到数组变量中(关键是我想使用我已经编写的get函数)。我可以很容易地做我想做的事情,而不必嵌入我的第一个函数,但是我需要在第二个函数中使用我的第一个函数,我遇到了一些问题 我的一个错误是,在我放入第二个函数的嵌入式get函数中没有匹配的函数调用(我认为我将变量与第一个get函数(即n、c、a和x)正确匹配) 谢谢你的关注C++ C++;:我想将数据从struct复制/存储到单个数组中,c++,arrays,struct,C++,Arrays,Struct,我编写了一个基本的get函数,它接受结构的元素,并将它们复制/存储到单独的变量中。我想做同样的事情,除了将结构数组存储到数组变量中(关键是我想使用我已经编写的get函数)。我可以很容易地做我想做的事情,而不必嵌入我的第一个函数,但是我需要在第二个函数中使用我的第一个函数,我遇到了一些问题 我的一个错误是,在我放入第二个函数的嵌入式get函数中没有匹配的函数调用(我认为我将变量与第一个get函数(即n、c、a和x)正确匹配) 谢谢你的关注 #include <iostream> #i
#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;
}
#包括
#包括
使用名称空间std;
结构ABC
{
int n;
字符c;
双a[3];
};
void get(int&n、char&c、double a[3]、const ABC&x)
{
n=x.n;
c=x.c;
对于(int i=0;i<3;i++){
a[i]=x.a[i];
}
}
void get(int n[],char c[],double a[][3],const ABC x[],int元素)
{
对于(int i=0;i<元素;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;
字符c;
int a[]={};
int n1[4]={};
char c1[4]={};
双a3[4][3]={};
int元素=3;
get(n1、c1、a3、xx、元件);
返回0;
}
你可能想说
get(n[i], c[i], a[i], x[i]);
但这并不能回答你的XY问题
“固定”代码(编译)在我看来,在带有数组的get函数中,您总是将值存储到每个数组中的相同位置。 您可能应该这样做:
get(n[i],c[i],a[i],x[i]) 一些缩进会很好的。这个标题立刻让我想起了。那么:为什么?谢谢你!不知道为什么我忘了在每个参数中添加索引。很多硬件,所以可能只是忘记了。