gpt4 book ai didi

c++ - 从 C++ 中带参数的函数返回数组

转载 作者:行者123 更新时间:2023-11-30 02:16:49 25 4
gpt4 key购买 nike

我试图从局部函数返回一个数组给主函数,但每次它都显示编译错误

invalid conversion from ‘int’ to ‘int*’ [-f permissive]

#include <bits/stdc++.h>

using namespace std;

int* GCDstrings(int a,int b,int *F)
{
int i;
if(a%b==0)
{
F[0]=1;

for(i=1;i<a;i++)
F[i]=0;
}

return F;
}

int main()
{
int T;
cin>>T;

while(T--)
{
int x,y;
cin>>x>>y;

int f[x];
int* p;
p=GCDstrings(x,y,f[x]);

for(int i=0;i<=x;i++)
cout<<*(p+i);
}

return 0;
}

我在这里做错了什么?

最佳答案

你的错误在于你的这部分代码

int f[x];
int* p;
p=GCDstrings(x,y,f[x]);

您正在尝试创建一个动态数组,然后将其传递给函数。

当您传递一个数组时,您应该只将位置传递给它的第一个值。

你可以做

p=GCDstrings(x,y,f);

在您的函数调用期间。

或者你可以去,

p=GCDstrings(x,y,&f[0]);

有关更多信息,请查看此链接 https://www.programiz.com/cpp-programming/passing-arrays-function .

此外,您可能还想研究一下 future 的动态内存分配,但看起来您才刚刚开始,所以像这样分配一个长度为 x 的数组是可以的,但请稍后再检查一下。 https://www.geeksforgeeks.org/new-and-delete-operators-in-cpp-for-dynamic-memory/

如果还有什么问题,请评论,我们会看到,

关于c++ - 从 C++ 中带参数的函数返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54386039/

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