Dlaczego chcesz używać linkowania zewnętrznego zasobów? Nie ma to większego sensu, gdyż niepotrzebnie uzależniasz jedne moduły od drugich, tracąc na ich uniwersalności. Wg mnie lepiej przesyłać dane poprzez parametry funkcji. Jedynym kosztem tego sposobu jest te parę bajtów potrzebnych do przesłania jako argumenty, a zyskujesz znacznie więcej.
PS: Do elementów tablicy odwołujemy się za pomocą operatora tablicowego []. Nie ma sensu inkrementować wskaźnika, gdyż później będzie go trudno użyć ponownie (powrót do stanu pierwotnego).
Kod mógłby wyglądać mniej więcej tak:
//_CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include "osoba.h"
struct Osoba Tablicasob[10] = {
{ "Karol","Kot","1998","31415926535897932384626433","Bank Bank","3248" },
{ "Karol","Kotlicki","1998","31415926535897932384626434","Bank Bank","113246" },
{ "Karol","Koterski","1998","31415926535897932384626445","Bank Bank","13247" },
{ "Karol","Kotek","1998","31415926535897932384626436","Bank Bank","1348" },
{ "Karol","Kociaż","1998","31415926535897932384626437","Bank Bank","13248" },
{ "Karol","Kociarski","1998","31415926535897932384626438","Bank Bank","13248" },
{ "Karol","Koci","1998","31415926535897932384626439","Bank Bank","13148" },
{ "Karol","Pies","1998","31415926535897932384626431","Bank Bank","248" },
};
int main(void) {
int liczba_osob = 8;
while (1) {
char wybor = 0;
printf("wpisz 1 Jeśli chcesz wyświetlić pełną listę kont \n");
printf("wpisz 6 jesli chcesz wyjść z programu \n");
wybor = getchar();
getchar();
switch (wybor) {
case '1':
wyswietl(Tablicasob, liczba_osob);
break;
case '6':
return 0;
}
}
}
#ifndef OSOBA_H
#define OSOBA_H
struct Osoba {
char imie[20];
char nazwisko[20];
char rokurodzenia[10];
char numerkonta[27]; // +1
char nazwabanku[20];
char kwota[20];
};
void wyswietl(const struct Osoba* osoby, const int liczba_osob);
#endif
#include "osoba.h"
void wyswietl(const struct Osoba* osoby, const int liczba_osob) {
printf("W tablicy struktur ListaOsoba typu Osoba mamy nastepujace dane:\n");
for (int i = 0; i < liczba_osob; i++) {
printf("TablicaOsob[%d]\n", i);
printf("imie: %s, nazwisko: %s\n, rokurodzenia: %s\n, numerkonta: %s\n, nazwabanku: %s\n, kwota: %s\n \n", osoby[i].imie, osoby[i].nazwisko, osoby[i].rokurodzenia, osoby[i].numerkonta, osoby[i].nazwabanku, osoby[i].kwota);
}
}