gpt4 book ai didi

c++ - 数组作为函数参数 - 编译错误

转载 作者:行者123 更新时间:2023-12-02 11:15:50 27 4
gpt4 key购买 nike

我想做一个返回数组的函数,例如:

#include "iostream"
#include "string"

using namespace std;

void minus(float v1[3], float v2[3], float v3[3][3]);

int main()
{
float a[3] = {1,0,0};
float b[3] = {3,2,5};
float c[3];
minus(a,b,c);

cout << c[0] << "C1" << endl;
cout << c[1] << "C2" << endl;
cout << c[2] << "C3" << endl;
cin.get();
return 0;
}

void minus(float v1[3], float v2[3], float v3[3])
{
int i;
float aux;
for (i = 0; i < 2; i++)
{
v3[i]=v1[i]-v2[i];
return;
}
}

错误是
[Error] cannot convert 'float*' to 'float (*)[3]' for argument '3' to 'void rectavector(float*, float*, float (*)[3])'"

我不明白这个错误。我通过引用返回 v3。

最佳答案

编译错误总是附有一个行号,因此您知道是哪一行代码导致了问题。

发布时,您可以通过评论标记相关行,例如

float c[3];
minus(a,b,c); // COMPILATION ERROR HERE

假设您的编译错误确实是我猜的,问题出在前向声明和函数定义之间不匹配:
void minus(float v1[3], float v2[3], float v3[3][3]);
... (some code omitted)
void minus(float v1[3], float v2[3], float v3[3])

编译器从上到下检查您的代码。当它看到你的 minus函数接收 float v3[3][3] ,然后您尝试发送 float c[3] ,它提示。

如果你的编译器输出了额外的错误信息,你可以看到它提示真正的问题——声明和定义之间的不匹配——稍后。

关于c++ - 数组作为函数参数 - 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43307273/

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