Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 15. 02. 2025 18:40

fmfiain
Příspěvky: 734
Reputace:   -1 
 

Char* vs const char*

Dobrý deň,
chcel by som sa spýtať, prečo:

Code:

const char* text = "text"; //toto funguje
char* text2 = "text2";  //toto hlási chybu

Ďakujem.

Offline

 

#2 15. 02. 2025 20:54

Aleš13
Příspěvky: 378
Reputace:   
 

Re: Char* vs const char*

Jakou chybu? Run-time nebo warning při překladu? (mělo by nastat obojí :-))

Problém je, že druhý příklad vytvoří řetězec "text2\0" uložený "kdesi v datech", jehož adresa je použitá jako počáteční hodnota proměnné text2. Následné problémy jsou asi zřejmé (ale při troše opatrnosti by se s tím dalo vyžít). V prvním případě vznikne konstantní pointer, neměnitelný a všechno je ok.

Offline

 

#3 16. 02. 2025 11:57 — Editoval fmfiain (16. 02. 2025 12:04)

fmfiain
Příspěvky: 734
Reputace:   -1 
 

Re: Char* vs const char*

Dobrý deň ↑ Aleš13:,
ja som to skúšal na VS community 2022 a vyhlásilo mi to chybu.

Konkrétne mi ukázalo, že nemôžem priradiť const char* do char*.

Offline

 

#4 16. 02. 2025 15:34

Aleš13
Příspěvky: 378
Reputace:   
 

Re: Char* vs const char*

Tak s tím už neporadím, VS ani nemám. Zkus stackoverflow, tam určitě bude někdo vědět proč je to právě takhle, takhle detailně to už nevím.

Offline

 

#5 16. 02. 2025 21:27

MichalAld
Moderátor
Příspěvky: 5178
Reputace:   127 
 

Re: Char* vs const char*

fmfiain napsal(a):

Dobrý deň ↑ Aleš13:,
ja som to skúšal na VS community 2022 a vyhlásilo mi to chybu.

Konkrétne mi ukázalo, že nemôžem priradiť const char* do char*.

Ale  možná to půjde s přetypováním, tedy ConstChar = (const char*) Char;


Jinak věci co překladač povolí a co né se mění snad s každou verzí. Takže třeba i spousta linuxových kódů co dříve šly přeložit bez problémů už dnes nejdou a musí se buď nastavit parametry překladače nebo dam doplnit nějaké takovéhle věci.

Offline

 

#6 17. 02. 2025 20:10

fmfiain
Příspěvky: 734
Reputace:   -1 
 

Re: Char* vs const char*

Dobrý deň,
našiel som spôsob ako previesť const char* do char*:

Code:

char* char1 = const_cast <char*>("text");

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson