Toto vlákno bylo označeno za vyřešené.
Kowalsky950
Stálý člen
Dobrý den, mám jen takovou jednoduchou otázečku, ale nikde na ni nemůžu najít řešení.
Mám několik řetězců
"prvni retezec" "druhy retezec" "treti retezec"
a potřebuji udělat ukazatel, ktery mi bude postupně ukazovat na tyto řetězce (takže svým způsobem ukazatel na ukazatele)
bohužel nemůžu vyčíst jak to udělat, a hlavně jak se k těmto řetězcům poté znovu dostat.
Děkuji za odpovědi.
KIIV~ Moderátor
+43
God of flame
ukazatel na ukazatele je char ** pole;
musi se akorat naalokovat misto a pak priradit adresy jednotlivych retezcu...
Program vždy dělá to co naprogramujete, ne to co chcete...
Kowalsky950
Stálý člen
To vím, ale už se mi nedaří přiřadit adresy k ukazateli.
A také nemůžu přijít na způsob co napsat funkci, která má parametr char*
pozn. navíc bych ty řetězce chtěl mít uložené na haldě
KIIV~ Moderátor
+43
God of flame
no kdyztak ukaz kod...
dynamicka alokace se dela na halde... pokud i retezce tak malloc (nebo new v c++) i pro jednotlive retezce a strcpy
Program vždy dělá to co naprogramujete, ne to co chcete...
Kowalsky950
Stálý člen
Kód právě nemůžu poskládat tak aby mi jel :/
Prostě...mám 3 řetězce. Tyto tři řetězce chci mít uložené na haldě, ale přistupovat k nim jenom jedním ukazatelem.
Kowalsky950
Stálý člen
Takže po pár pokusech sjem na to přišel. Vypadá to zatím takto, je to v pořádku nebo je nějaký elegantnější způsob?
char *a=new char [5];
char *b=new char [8];
strcpy(a,"ahoj");
strcpy(b,"vsichni");
char *ukazatel[2];
ukazatel[0]=a;
ukazatel[1]=b;
char *c; //je nutne pristupovat pres tento ukazatel?
c=ukazatel[0];
cout<< c; //vystup ahoj
KIIV~ Moderátor
+43
God of flame
no proto sem se chtel mrknout jak se to snazis udelat...
jinak se to da udelat nejak jako char **pole = malloc(sizeof(char*)*x); pole[0] = malloc(velikost+1); strcpy(....)
EDIT: kdyz je to v C++ tak: char **pole = new char*[2]; pole[0] = new char[5]; strcpy(pole[0], "ahoj"); ...
Program vždy dělá to co naprogramujete, ne to co chcete...
Kowalsky950
Stálý člen
Jo to vypadá mnohem líp ;-) :)
Díky :)
vitamin+8
Grafoman
#8 Kowalsky95
Mozes skusit pouzit <string>l:
std::string pole[2] = {"ahoj", "vsichni"};
std::cout << pole[0] << ", " << pole[1] << '\n';
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Zjistit počet nových příspěvků
Přidej příspěvek
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 15 hostů