Nakonec jsem to udelal takhle:
v mainu mam toto
int al = 4;
TOsoba *seznam=(TOsoba*)malloc(al*sizeof(TOsoba));
nacti(fin, seznam, &al, &pocetid);
v ve funkci nacti musim toto pole zvetsovat
int nacti(FILE *fin, TOsoba *seznam, int *al, int *pocetid)
{
int id;
id = *pocetid;
if (id == *al) { // pocet prvku se rovna maximalnimu poctu v poli -> proto realokace
*al *= 2; // realokuju pamet na dvojnasobek
seznam = (TOsoba*) realloc(seznam,(*al) * sizeof(TOsoba));
}
ale mam problem. na prvni 4 hodnoty se mi uklada vsechno spravne.
ale potom, az provedu realokaci, tak se mi misto hodnot ukladaji(a zobrazuji) adresy...
co s tim?
pro presnost. na 6 radku jsem vlozil to same a ve vysledku se mi zobrazuje toto:
JMENO: 6 1 35 PRIJMENI: 17 32 3 POHLAVI: 1
MAJETEK: - 1 2 DLUH: 4 5
JMENO: 6 1 35 PRIJMENI: 17 32 3 POHLAVI: 1
MAJETEK: - 1 2 DLUH: 4 5
JMENO: 6 1 35 PRIJMENI: 17 32 3 POHLAVI: 1
MAJETEK: - 1 2 DLUH: 4 5
JMENO: 6 1 35 PRIJMENI: 17 32 3 POHLAVI: 1
MAJETEK: - 1 2 DLUH: 4 5
JMENO: 6488068 524681 2090322144 PRIJMENI: 1394631790 1769239653 15510669
90 POHLAVI: 0
MAJETEK: DLUH:
JMENO: 0 0 0 PRIJMENI: 538976288 538976288 538976288 POHLAVI: 538968064
MAJETEK: ► DLUH: ► ► ►