使用 c++/vC++ 将结构数组和二维数组传递给函数
Posted
技术标签:
【中文标题】使用 c++/vC++ 将结构数组和二维数组传递给函数【英文标题】:Passing array of structures and 2d array to a function using c++/vC++ 【发布时间】:2014-09-16 09:24:07 【问题描述】:我需要帮助,我有一个结构
typedef struct
unsigned char data0;
unsigned char data1;
// like this 8 bytes of data in my structure
MyStruct;
typedef struct
Mystruct my_st[8];
Info1;
typedef struct
unsigned char My_Array[8][7];
Info2;
//now i want to pass the array of 8 structures in Info1 and 2D array of Info2 .
My_Function( &Info1->my_st[8], &Info2->My_Array[8][7]);
这是正确的方法,否则请告诉我。
【问题讨论】:
My_Function( &Info1, &Info2);
?这会将结构传递给 My_Function。 MyStruct
的定义不正确。
【参考方案1】:
原型应该是
void My_Function(MyStruct (&my_st)[8], unsigned char (&My_Array)[8][7]);
然后这样称呼它:
Info1 info1;
Info2 info2;
My_Function(info1.my_st, info2.My_Array);
但这样会更简单:
void My_Function(Info1 &info1, Info2 &info2);
和
Info1 info1;
Info2 info2;
My_Function(info1, info2);
【讨论】:
【参考方案2】:我认为这会对您有所帮助:
typedef struct
unsigned char data0;
unsigned char data1;
// like this 8 bytes of data in my structure
MyStruct;
typedef struct
MyStruct my_st[8];
Info1;
typedef struct
unsigned char My_Array[8][7];
Info2;
//declare My_Function
void My_Function(MyStruct[], unsigned char[][7]);
int main()
Info1 i;
Info2 j;
// use My_Function
My_Function(i.my_st,j.My_Array);
【讨论】:
以上是关于使用 c++/vC++ 将结构数组和二维数组传递给函数的主要内容,如果未能解决你的问题,请参考以下文章