【问题标题】:Accessing struct array outside function在函数外访问结构数组
【发布时间】:2020-02-25 05:05:09
【问题描述】:

..C.. 我试图弄清楚如何访问我的填充数组,该数组使用一个带有另一个函数的结构,稍后我将使用该函数进行排序,但我什至无法打印在我的 main 中填充数组的函数。

我已经在 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 调用的 main 打印,但现在它只打印:

第一个朋友的名字是:

就是这样

【问题讨论】:

  • 在尝试从数组中读取数据之前,您需要调用fillArray()。
  • 您对 main() 的定义无效。

标签: c arrays function struct


【解决方案1】:

您需要调用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() 应该只有两个参数,如下所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多