Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;:我想将数据从struct复制/存储到单个数组中_C++_Arrays_Struct - Fatal编程技术网

C++ C++;:我想将数据从struct复制/存储到单个数组中

C++ C++;:我想将数据从struct复制/存储到单个数组中,c++,arrays,struct,C++,Arrays,Struct,我编写了一个基本的get函数,它接受结构的元素,并将它们复制/存储到单独的变量中。我想做同样的事情,除了将结构数组存储到数组变量中(关键是我想使用我已经编写的get函数)。我可以很容易地做我想做的事情,而不必嵌入我的第一个函数,但是我需要在第二个函数中使用我的第一个函数,我遇到了一些问题 我的一个错误是,在我放入第二个函数的嵌入式get函数中没有匹配的函数调用(我认为我将变量与第一个get函数(即n、c、a和x)正确匹配) 谢谢你的关注 #include <iostream> #i

我编写了一个基本的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; 
} 
#包括
#包括
使用名称空间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])

一些缩进会很好的。这个标题立刻让我想起了。那么:为什么?谢谢你!不知道为什么我忘了在每个参数中添加索引。很多硬件,所以可能只是忘记了。