gpt4 book ai didi

C-传递和引用结构数组

转载 作者:行者123 更新时间:2023-11-30 14:23:43 25 4
gpt4 key购买 nike

我有一个 Point 结构的 C 代码:

typedef struct Point{
int x, y;
} Point;

void one(Point P) {
p.x = 1;
p.y = 1;
}

我想创建一个指向 50 个点的数组的指针,然后将其中的一些数组成员传递给一个函数。

我试过了

struct Point (*mypointer)[50];
one(mypointer[i]);

但得到“预期的‘Point’,但参数的类型为‘struct Point’”然后我尝试引用指针

one(&mypointer[i])

但得到“预期的‘Point’,但参数的类型为‘struct Point (*)[(long unsigned int)N]”我应该怎么办?谢谢。

最佳答案

这是因为函数 one 的参数不是对结构的引用,而只是实际数据(在堆栈上分配)。

尝试使用:

void one(Point *p) {
p->x = 1;
p->y = 1;
}

无论如何,声明为 struct Point *mypointer[50] 的数组都不是指向点的数组,而是指向点的指针数组(必须一一分配)。如果您只想拥有一个指向点的数组,您应该使用

Point points[50];
one(&points[i])

关于C-传递和引用结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12611819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com