【发布时间】:2021-11-02 23:52:42
【问题描述】:
试图将结构指针数组传递给函数doIt()。看起来我的方法不正确,因为我无法获得正确的第二个数组元素:
struct c {
int a;
char* b;
};
struct cc {
int a;
c* b;
};
char a[] = "aaa";
char b[] = "bbb";
char e[] = "eee";
c d1 = {1,a};
c d2 = {2,b};
c d3 = { 12,e };
cc g1 = { 123, &d1 };
cc g2 = { 321, &d2 };
cc g3 = { 333, &d3 };
void doIt( c * s)
{
cout << s->b;
s++;
cout << s->b;
}
传递结构指针数组的正确方法是什么?
【问题讨论】:
-
请展示调用 doIT 函数的代码示例。此外,如果您不对多个对象重复使用相同的名称(a、b),也会减少混乱。
-
如图所示,
doIt不采用指针数组。它需要一个指向c类型对象数组的指针。其余代码未声明适合传递给此函数的c数组。目前尚不清楚您要达到的目标。