gpt4 book ai didi

c - 如何在c中返回一个数组

转载 作者:行者123 更新时间:2023-11-30 19:56:40 25 4
gpt4 key购买 nike

我知道这个问题以前曾被问过,但无法以与我在此处描述的方式相同的方式找到它:

这一切都是关于用 C 语言返回一个一维数组。在 Java 中这非常简单:

 double[] myFunction() {

double[] v = new double[10];

return v;
}

我知道c中的实现不一样。但由于数组元素可以被视为指向该数组中第一个元素的指针,我认为可以执行以下实现:

 double (*myFunction()) {

double v[10];

return v;
}

这在 gcc 中编译得很好,但是当我调用该函数时,出现编译错误。

我的问题 - 如何用 C 语言返回一维 vector ?

谢谢

最佳答案

示例代码

#include <stdio.h>
#include <stdlib.h>

double *myFunction1(){
return malloc(10*sizeof(double));
}

double (*myFunction2())[10]{
double (*p)[10];
p = malloc(sizeof(double[10]));
return p;
}

typedef struct d10 {
double vec[10];
} D10;

D10 myFunction3(){//Make little sense
D10 v = {{0}};
v.vec[9]=1.25;

return v;
}

int main(){
double *v1 = myFunction1();
double (*v2)[10] = myFunction2();
D10 v3= myFunction3();
//do something
printf("%lf\n", v3.vec[9]);
v1[0] = 3.14;
(*v2)[0] = 3.14 * 2;
free(v1);
free(v2);
return 0;
}

关于c - 如何在c中返回一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20775852/

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