Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C - Spajany zoznam struktur mazanie

Dobry den prajem. Mam problemy so strukturami. Chapem zaklady spajaneh zoznamu ako ukazuju jednotlive struktury v zozname na druhe a tak ale neviem prijst nato ako zmazat dajme tomu v 8prvkovom zozname stuktur strukturu na 5. mieste napadlo ma ze ked dojdem na piatu tak ta stvrta bude ukazovat namiesto piatej na siestu a piatu vymazem. Bohuzial neviem ako to funguje ci pri mazani sa dava free alebo ako priradim tej stvrtej adresu siestej atd. Neukazal by mi dakto priklad ako sa to robi?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Musim to robit cez temp? Tuto mam jeden priklad: aktualnyZaznam=prvyZaznam; printf("%d\n",pocet); f…
Parker 26.11.2015 11:52
Parker
a tie smerniky aktualnyZaznam a prvyZaznam som alokoval cez malloc
Parker 26.11.2015 11:56
Parker
struktura* neco; neco = aktualnyZaznam->dalsia; aktualnyZaznam->dalsia = neco->dalsia; free(neco);
MM.. 26.11.2015 11:57
MM..
Este jedna otazocka co ak chcem zmazat uplne prvu strukturu to nemozem iba vymazat to musim poposuva…
Parker 26.11.2015 12:06
Parker
Ak to robis vo funkcii a predavas to prvyZaznam parametrom, tak to ale neovplyvni origijnalnu premen…
MM.. 26.11.2015 12:17
MM..
Ahaaaa jasne chapem super dakujem moc :) poslední
Parker 26.11.2015 12:19
Parker

Musim to robit cez temp? Tuto mam jeden priklad:

aktualnyZaznam=prvyZaznam;
                        printf("%d\n",pocet);
                        for(i=0;i<pocet-1;++i)
                        {
                            aktualnyZaznam=aktualnyZaznam->dalsia;
                        }
                        aktualnyZaznam->dalsia=aktualnyZaznam->dalsia->dalsia;
                        printf("%s\n",aktualnyZaznam->nazovTovaru);
                        break;

Pocet je kolko struktur bolo prejdenych dokial som nenarazil na tu ktoru chcem zmazat. No a v tomto kode sa dostanem na strukturu pred tu ktoru chcem vymazat a podarilo sa mi tu adresu aj zmenit a preskocit ju ale neviem vymazat tu strukturu co som preskocil

Ak to robis vo funkcii a predavas to prvyZaznam parametrom, tak to ale neovplyvni origijnalnu premennu. Potom si musis predavat to prvyZaznam do funkcie odkazom (adresu toho prvyZaznam, t.j. dvojity pointer).

funkcia(struktura **prvyZaznam)
{
aktualnyZaznam = *prvyZaznam;
for(i=0...

a ked chces zmazat ten prvy tak potom
neco = *prvyZaznam;
*prvyZaznam = neco->dalsi;
free(neco)
}
a volas to potom ako
funkcia(&prvyZaznam);
tak ovplyvnis premennu prvyZaznam vnutri funkcie (ak si ju pamatas mimo tej fukcie)

Zpět do poradny Odpovědět na původní otázku Nahoru