在外部访问结构数组

时间:2019-10-29 22:23:29

标签: c arrays function struct

.. C .. 我试图弄清楚如何访问填充的数组,该数组利用了一个结构以及另一个函数,稍后将用于排序,但是我什至无法打印将函数填充到我的主数组中的函数。

我已经在main内部加载了该函数,并且在fillArray函数内部进行了打印,但是稍后我需要从函数外部访问该数组以进行冒泡排序和二进制搜索。

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define SIZE 100

typedef struct Person
{
    char firstname[25];
    char lastname[25];
} person;

person list [SIZE];

person loadPeople(char firstname[25],char lastname[25])
{
    person p;
    strcpy(p.firstname, firstname);
    strcpy(p.lastname,  lastname);
    return p;
}

void fillArray()
{
    list[0] = loadPeople("Bob","Baker");
    list[1] = loadPeople("Bill","Johnson");
    list[2] = loadPeople("John","Finmeister");
    list[3] = loadPeople("Jennifer","Ratblaster");
    list[4] = loadPeople("Shaun","Gares");
    list[5] = loadPeople("Diggy","McDigMaster");
    list[6] = loadPeople("Joanne","TheStore");
}

int main(int argc , char *argv[])
{

    printf("First homie's name is: %s %s\n",list[0].firstname,list[0].lastname);

    return 0;
}

我只想从fillArray的主要召回中进行打印,但现在仅打印:

第一个兄弟的名字是:

就这样

1 个答案:

答案 0 :(得分:2)

您需要调用fillArray()才能执行它:

int main(int argc , char *argv[])
{
    fillArray();
    printf("First homie's name is: %s %s\n",list[0].firstname,list[0].lastname);

    return 0;
}

请注意,main()仅应具有两个参数,如下所示。