Dyn Struct – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Dyn Struct – C / C++ – Fórum – Programujte.comDyn Struct – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
myth
~ Anonymní uživatel
55 příspěvků
6. 5. 2007   #1
-
0
-

problem: Mam dynamicku struktoru dajme tomu

struct ziaci { char * meno; char priezvisko; };

main()
{
ziaci * trieda;
add_trieda(trieda);
}

void add_trieda(ziaci * pt)
{
pt = new ziaci [5];
// teraz alokujem pamat pre meno a potom priezvisko a skopirujem udaje
}


lenze problem je v tom ze to pracuje iba vo funkcii add_tieda vo funkcii main je struktura priazdna!
Tomuto fakt nerozumiem ved predavam ukazovatel na tu strukturu.

alebo to nema byt nahodou takto?

trieda = add_trieda(trieda);


a vo funkcii { return pt; } ??

Nahlásit jako SPAM
IP: ...–
Reklama
Reklama
Jura
~ Anonymní uživatel
634 příspěvků
6. 5. 2007   #2
-
0
-

To myth:
Nejlepsi podle meho je volba, kterou jsi sam uvedl, tedy vratit adresu na tu stukturu. Dalsi moznosti je predavat adresa _pointeru_ jako parametr, tedy:



void add_trieda(ziaci ** pt)
{
pt = new ziaci [5];
// teraz alokujem pamat pre meno a potom priezvisko a skopirujem udaje
}
//a volat
add_trida(&trieda);

Nebo kdyz jsme v C++:


void add_trieda(ziaci *& pt) // nebo naopak ziaci &* pt
{
pt = new ziaci [5];
// teraz alokujem pamat pre meno a potom priezvisko a skopirujem udaje
}

// a volat noramlne
add_trieda(trieda);

Nahlásit jako SPAM
IP: ...–
myth
~ Anonymní uživatel
55 příspěvků
6. 5. 2007   #3
-
0
-

To Jura: velka vdaka za odpoved, tu divoku kombinaciu &* vidim po prvykrat.
ale pomohla vdaka :) kebyze tu je rating tak +1 bod.

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
634 příspěvků
7. 5. 2007   #4
-
0
-

Jak se tak divam, tak tom prvnim priklade mam chybku. Namisto



void add_trieda(ziaci ** pt)
{
pt = new ziaci [5];
// teraz alokujem pamat pre meno a potom priezvisko a skopirujem udaje
}

ma byt samozrejme:


void add_trieda(ziaci ** pt)
{
*pt = new ziaci [5];
// teraz alokujem pamat pre meno a potom priezvisko a skopirujem udaje
}

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 103 hostů

Podobná vlákna

Struct — založil

Fronta(Struct) — založil Barda

Struct vo funkcii — založil Eversmann

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý