struct result {
int number;
int length;
};
struct result findLongestSeq(int intarray[], int size) {
result->number // undefined symbol
}
如何在函数findLongestSeq中访问struct结果?
感谢
答案 0 :(得分:3)
struct result {
int number;
int length;
};
struct result findLongestSeq(int intarray[], int size) {
struct result result;
result.number = 0;
result.length = 42;
return result;
}
如果您正在处理struct result foo
,则可以通过foo.number
访问其成员。
但是,如果您正在处理指向foo(struct result *foo
)的指针,那么您可以通过foo->number
访问其成员。
如果您通过
手动分配结果结构struct result *result = (struct result *)malloc(sizeof (struct result));
然后你必须通过result->number
访问其成员(并且一旦不再使用它将负责释放它)。
为了更好的可读性,我宁愿使用它:
typedef struct {
int number;
int length;
} ResultStruct;
然后,您可以使用ResultStruct result;
代替冗余和详细struct result result;
。
答案 1 :(得分:0)
您必须记住,只需输入
即可struct result {
int number;
int length;
};
您只定义具有名称结果的结构实际上是什么样的结构,即它的构成部分。这是一般性定义,但您还有该类型的变量。
要访问此结构的值,您必须通过
创建变量struct result myResult;
或者你想要打电话。此时,您可以使用myResult.number