Доступ к массиву структур вне функции - PullRequest
0 голосов
/ 30 октября 2019

.. 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, но сейчас он печатает только:

Имя первого гомея:

вот оно

1 Ответ

2 голосов
/ 30 октября 2019

Вам необходимо вызвать 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() должно иметь только два параметра, как показано здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...