C 我试图使用指针通过函数更改结构中的值,但在函数中输入地址时出错
我有一个程序,首先在一个inlude.h文件中创建一个typedef结构,如下所示C 我试图使用指针通过函数更改结构中的值,但在函数中输入地址时出错,c,pointers,struct,C,Pointers,Struct,我有一个程序,首先在一个inlude.h文件中创建一个typedef结构,如下所示 typedef struct { uint16_t x, y; } vector_t; 然后,我在main中根据上述定义创建一个结构,如下所示 vector_t vec = {5,10}; 然后尝试在下面的函数中使用它 void initVector(vector_t *v) { (*v).x = 10; (*v).y = 20; } 我输入我的函数,周围是这样打印语句的 printf(&quo
typedef struct {
uint16_t x, y;
} vector_t;
然后,我在main中根据上述定义创建一个结构,如下所示
vector_t vec = {5,10};
然后尝试在下面的函数中使用它
void initVector(vector_t *v) {
(*v).x = 10;
(*v).y = 20;
}
我输入我的函数,周围是这样打印语句的
printf("%d %d\n innit \n",vec.x,vec.y);
void initVector(&vec);
printf("%d %d\n \n",vec.x,vec.y);
然而,当我试图构建程序时,我得到了以下错误
expected declaration specifiers or '...' before '&' token
当函数被注释掉时,print语句给出了向量,所以我认为这不是问题所在,但我不明白为什么它不应该工作
任何帮助都将不胜感激您需要的是调用函数initVector,而不是声明它,因此您必须替换
void initVector(&vec);
仅仅
initVector(&vec);
顺便说一句,在函数initVector中,您可以编写:
void initVector(vector_t *v)
{
v->x = 10;
v->y = 20;
}
发布你的完整代码。来自单行代码的错误完全没有意义,因为它们没有上下文。
void initVector(&vec)代码>不是有效的语句。替换为initVector(&vec)代码>谢谢Mike Nakis!在过去的半个小时里,我错过了这个机会,现在我觉得自己真的很愚蠢。