Dynamické pole structur – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Dynamické pole structur – C / C++ – Fórum – Programujte.comDynamické pole structur – C / C++ – Fórum – Programujte.com

 

Radek Mrvec0
Návštěvník
22. 3. 2007   #1
-
0
-

Zdravim, mám takový problém , kterej určitě někdo z vás vyřeší. Chci vytvořit dynamické pole structur a vložit do něj hodnoty přímo v programu, ale pořád se mi to nedáří. Podle mě by to mělo být nějak takto:



#include<iostream>
usíng namespace std;

struct ukazka
{
char jmeno[20];
int vek;
};

int main()
{
ukazka *ukazatel = new ukazka[2];
ukazatel[0] = { "Petr", 22 };
ukazatel[1] = { "Jirka", 15};
cin.get();
return 0;
}


Už s tím bojuju celej večer. Díky moc za pomoc

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
22. 3. 2007   #2
-
0
-

Takhle teda rozhodne ne. V C se pole neda kopirovat prirazenim, musis zkopirovat vzdy prislusny blok pameti.



#include<iostream>
usíng namespace std;

struct ukazka
{
char jmeno[20];
int vek;
};

int main()
{
ukazka *ukazatel = new ukazka[2];
strcpy(ukazatel[0].jmeno, "pepik"); // anologickz pro druhou polozku
cin.get();
return 0;
}

Nahlásit jako SPAM
IP: ...–
Radek Mrvec0
Návštěvník
22. 3. 2007   #3
-
0
-

To Jura: OK díky moc.

Nahlásit jako SPAM
IP: ...–
Radek Mrvec0
Návštěvník
5. 4. 2007   #4
-
0
-

Tak jsem se konečně dostal k tomu aby jsem to odzkoušel. Teď ale přemýšlím nad tím jak udělat aby řetězec "Pepík" byl zadanej z klávesnice pomocí objektu cin. Děkuji za radu.

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

To Redby:



#include<iostream>
usíng namespace std;

struct ukazka
{
char jmeno[20];
int vek;
};

int main()
{
ukazka *ukazatel = new ukazka[2];
cout <<"Zadej jmeno: ";
cin >> ukazka[0].jmeno; // Pozor, cte po prvni bily znak(mezera, tabulator, atd...)
// poku chces nacitat viceslovne vyrazy, pak pouzij
ci.get(ukazka[0].jmeno, 20);
// nebo
cin.getline(ukazka[0].jmeno, 20);
cin.get();
return 0;
}

Nahlásit jako SPAM
IP: ...–
Dodiq0
Newbie
9. 4. 2007   #6
-
0
-

Ako hovoril pán Jura, cin.get()/line(), ale chlape pre istotu si prečítaj ten tutoriálik c++ čo tu je, aj medzi nimi je rozdiel.

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

To Dodiq:
Prosim, bez toho pana, tak stary nejsem. ;)

Nahlásit jako SPAM
IP: ...–
sn3d0
Věrný člen
9. 4. 2007   #8
-
0
-

To Jura: Hehe no tak to ti dal :D

Nahlásit jako SPAM
IP: ...–
shutdown -h now
Dodiq0
Newbie
9. 4. 2007   #9
-
0
-

ja len slušne..;)

Nahlásit jako SPAM
IP: ...–
Beginner
Radek Mrvec0
Návštěvník
10. 4. 2007   #10
-
0
-

Díky za pomoc. Sice je v tom podle mě chybička, ale už jsem ji odhalil.

Místo řádku:

cin >> ukazka[0].jmeno;


jsem přeci jenom dal na svůj názor a použil:

cin >> ukazatel[0].jmeno;


a hle ono to fungovalo. Ale i tak díky moc.. :-)

Nahlásit jako SPAM
IP: ...–
awarus
~ Anonymní uživatel
2 příspěvky
18. 4. 2007   #11
-
0
-

a nezapomen to smazat pomoci delete...

Nahlásit jako SPAM
IP: ...–
Dusan Knop0
Newbie
19. 4. 2007   #12
-
0
-

Redby píše:

struct ukazka#
#{#
#char jmeno[20];#
#int vek;#
#};



No ja si tedy myslim, ze uz jen z pohledu OOP a ze znalosti toho, ze struct je ekvivalentni class-public, tak bych tam pro tu struct udelal normalne konstructor a pak by to vidapado urcite lepe...
a prijde mi to i jako velmi pekne a ciste reseni

Nahlásit jako SPAM
IP: ...–
mallox0
Návštěvník
19. 4. 2007   #13
-
0
-

ahoj..kdyz potrebujes pole struktur, tak proc tam cpes oop ?!



#include <stdio.h>
#include <stdlib.h>

typedef struct sstudent {
int id;
int zkouska;
} STUDENT;

STUDENT* student;

int main(int argc, char* argv[])
{
student = (STUDENT *) malloc(atoi(argv[1]) * sizeof(STUDENT));

(*student).id = 12;
(*student).zkouska = 1;
(*(student+1)).id = 13;
(*(student+1)).zkouska = 3;
printf("stud c %d udelal za %d\n", student->id, student->zkouska);
printf("stud c %d udelal za %d\n", (*(student+1)).id, (*(student+1)).zkouska);
free(student);
return 0;
}

Nahlásit jako SPAM
IP: ...–
linux v grafice je boj
forum.ubuntu.cz
Redby
~ Anonymní uživatel
71 příspěvků
19. 4. 2007   #14
-
0
-

gody píše:#
#

Redby píše:

struct ukazka#
#{#
#char jmeno[20];#
#int vek;#
#};

#
##
#No ja si tedy myslim, ze uz jen z pohledu OOP a ze znalosti toho, ze struct je ekvivalentni class-public, tak bych tam pro tu struct udelal normalne konstructor a pak by to vidapado urcite lepe...#
#a prijde mi to i jako velmi pekne a ciste reseni



Jo, ale tak daleko jsem ještě ve svém učení nedošel :-)

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, 34 hostů

Podobná vlákna

Dynamicke pole — založil george6565

Dynamicke pole — založil Earl Cash

Ne/dynamicke pole — založil cecilconrad

Moderátoři diskuze

 

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