Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我试图使用指针通过函数更改结构中的值,但在函数中输入地址时出错_C_Pointers_Struct - Fatal编程技术网

C 我试图使用指针通过函数更改结构中的值,但在函数中输入地址时出错

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

我有一个程序,首先在一个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("%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!在过去的半个小时里,我错过了这个机会,现在我觉得自己真的很愚蠢。