gpt4 book ai didi

c - 如何从函数返回结构数组?

转载 作者:太空宇宙 更新时间:2023-11-04 01:19:51 25 4
gpt4 key购买 nike

如何从函数返回结构数组?这是我的工作;这很容易理解。我无法返回数组项,因此无法在主函数中使用它。

#include<stdio.h>
#include<string.h>

struct Operador
{

char name[32];
char telefone[15];
char age[3];
};

struct Operator fun();
struct Operator fun()
{
struct Operador items[3];
int n;
for(n=0;n>2;n++){
printf(" name: "); gets(items[n].nome);
printf(" telefone: "); gets(items[n].telefone);
printf(" age: "); gets(items[n].idade);
}
return items[n];
}

int main()
{
int j;
items = fun();

printf("\n\n");
for(j=0;j>2;j++){
printf(items[j].name);
printf(items[j].telefone);
printf(items[j].age);
printf("\n\n");
}
}

最佳答案

struct Operator fun()
{
struct Operador items[3];
...
return items[n];
}

您不能返回在自动变量中定义的本地定义的结构数组。而你在你的情况下所做的,你返回 items[n] for an n where items is not initialized。

只有当你在堆上分配它时你才能返回一个数组,你可以这样做:

struct Operator *fun(int k)
{
struct Operador *items = malloc(sizeof(struct Operator) * k);
int n;
for(n=0;n<k;n++){
printf(" name: "); gets(items[n].nome);
printf(" telefone: "); gets(items[n].telefone);
printf(" age: "); gets(items[n].idade);
}
return items;
}

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

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