返回结构类型

时间:2016-04-21 07:39:57

标签: c struct return

struct name_strucutre()
{
    char cName[] = "hello";
    int iCode, i = 0;
    struct sign_in items[6];//array of six structure variables

    Fpointin=fopen("namepass.txt","r");

    if (Fpointin == NULL)
    {
        printf ("File does not exist.\n");
    }
    else
    {
        for (i=0;i<6;i++)
        {
            fscanf(Fpointin,"%42s %d",items[i].name, &items[i].password);//read all values from the file into th structure
        }
        printf("Here is the sign_in structure\n");//print the entirety of the sign_in structure
        for (i=0;i<6;i++)
        {
            printf("name: %s\ncode: %d\n\n", items[i].name, items[i].password);
        }
    }
    fclose(Fpointin);
    return items;
}

这个函数应该返回结构sign_in这是一种将结构传递回main的安全方法吗?我必须将用户输入的值与结构的值进行比较,这是我能想到的唯一方法。

2 个答案:

答案 0 :(得分:-1)

首先,您必须将返回类型定义为struct sign_in,而不仅仅是struct。其次,最好返回指向结构的指针,尤其是在结构数组(不是单个对象)的情况下。

答案 1 :(得分:-3)

  1. 功能声明应为struct sign_in* name_strucutre()struct sign_in& name_strucutre()

  2. 您无法返回在函数内struct sign_in items[6];处发生的堆栈上创建的结构。