Ukazatel na ukazatele znaků – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ukazatel na ukazatele znaků – C / C++ – Fórum – Programujte.comUkazatel na ukazatele znaků – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Kowalsky950
Stálý člen
22. 6. 2013   #1
-
0
-

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.

Nahlásit jako SPAM
IP: 90.176.114.–
KIIV
~ Moderátor
+43
God of flame
22. 6. 2013   #2
-
0
-

ukazatel na ukazatele je  char ** pole;

musi se akorat naalokovat misto a pak priradit adresy jednotlivych retezcu...

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kowalsky950
Stálý člen
22. 6. 2013   #3
-
0
-

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ě

Nahlásit jako SPAM
IP: 90.176.114.–
KIIV
~ Moderátor
+43
God of flame
22. 6. 2013   #4
-
0
-

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

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kowalsky950
Stálý člen
22. 6. 2013   #5
-
0
-

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.

Nahlásit jako SPAM
IP: 90.176.114.–
Kowalsky950
Stálý člen
22. 6. 2013   #6
-
0
-

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
Nahlásit jako SPAM
IP: 90.176.114.–
KIIV
~ Moderátor
+43
God of flame
22. 6. 2013   #7
-
0
-

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"); ...

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kowalsky950
Stálý člen
22. 6. 2013   #8
-
0
-

Jo to vypadá mnohem líp ;-) :)
Díky :)

Nahlásit jako SPAM
IP: 90.176.114.–
vitamin+8
Grafoman
22. 6. 2013   #9
-
0
-

#8 Kowalsky95
Mozes skusit pouzit <string>l:

std::string pole[2] = {"ahoj", "vsichni"};

std::cout << pole[0] << ", " << pole[1] << '\n';
Nahlásit jako SPAM
IP: 95.105.152.–
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

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

Podobná vlákna

Ukazatele — založil Šimon

Ukazatele — založil demo

Ukazatele — založil IBTR

C# ukazatelé — založil Kubas129

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ý