Ahoj, řeším takový problém v C s ukazatelem jako výstupním parametrem funkce. Předvedu to na ukázce.
Mám funkci nacti(), ve které volám funkci vloz() (pro ukládání struktur do lin. seznamu). Teď mi jde o ty dva parametry (pointery) prvni a akt, aby po zpracování té funkce vloz() se změnila hodnota ukazatelů z NULL na příslušné adresy na dané struktury. Takto mi zůstavají stále oba ukazatelé inicializovány na NULL. Lze oba ukazatelé vložit do kódu jako globalní proměnné, ale potřebuji se právě těch globálních proměnných zbavit. Prosím, dokázal by mi někdo poradit, jak ty ukazatelé správně implementovat, aby se změnily jejich hodnoty?
tOsoba *nacti(char *nazevSouboru) { FILE *fr; char retezec[100]; tOsoba *prvni = NULL;
tOsoba *prvni = NULL;
vloz(vytvorOsobu(retezec), akt, prvni); }
void vloz(tOsoba *alokovanaOsoba, tOsoba *akt, tOsoba *prvni) {
tOsoba *predchozi;
if(prvni == NULL) {
prvni = alokovanaOsoba;
prvni->predchozi = NULL;
akt = prvni;
} else {
predchozi = akt;
akt->dalsi = alokovanaOsoba;
akt = akt->dalsi;
akt->predchozi = predchozi;
}
}