如果您需要退回struct
从函数中,您通常会返回一个指向struct
反而。
如果您想返回结构数组,建议:
- 返回结构体数组(指向第一个元素的指针)
- 或者返回一个结构体指针数组?
我为以下两个选项画了一个图表:
1:
2:
给出以下结构定义
struct values {
int a;
int b;
};
下面是一些用于从两个选项访问结构体字段的示例代码:
选项1:
struct values *vals = get_values1();
printf("%d, %d\n", values[0].a, values[1].b);
选项#2:
struct values **vals = get_values2();
printf("%d, %d\n", values[0]->a, values[1]->b);
我认为不使用版本 1 的唯一问题是,可能更容易识别第二个版本中的结构数量(返回),作为NULL
指针可以用作停止器元素,而在第一个版本中可能无法定义停止器元素。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)