我必须做一个返回两个向量的点积的函数.这是他的代码:
float res;
float v1[3];
float v2[3];
v1[0] = 3;
v1[1] = 2;
v1[2] = 0;
v2[0] = 2;
v2[1] = 5;
v2[2] = 0;
float dotProd(float *vec1, float *vec2) {
return vec1[0]*vec2[0] + vec1[1]*vec2[1] + vec1[2]*vec2[2];
}
res = dotProd(v1, v2)
Run Code Online (Sandbox Code Playgroud)
我认为函数是正确的,问题是当我定义向量的值时,我得到无效的初始化器错误.
我错过了什么?
你试图做的不是初始化而是分配.前者在定义变量时完成,而后者在稍后作为可执行语句完成.您收到错误,因为在函数外部不允许使用可执行语句.
您需要在定义数组时使用初始化程序:
float v1[3] = {3, 2, 0};
float v2[3] = {2, 5, 0};
Run Code Online (Sandbox Code Playgroud)