Geek tričko zdarma Geek tričko zdarma
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde

Diskuze: Změna hodnoty pointeru

Aktivity (2)
Avatar
Marek Uhlik
Člen
Avatar
Marek Uhlik:20.7.2018 17:01

Změnit hodnotu proměnné text
Problém je tady:

*text = "A";

Zkusil jsem:

void changeSomething(const char * text);
int main(void)
{
        const char * text = "Something";
        changeSomething(text);
        return 0;
}


void changeSomething(const char * text)
{
        while(*text != '\0')
        {
                *text = "A";
                *text++;
        }
}

Zkoušel jsem něco vygooglit ,ale nic mi nefungovalo přitom vím že to nebude nic těžkého.

Chci docílit: Změnit hodnotu

 
Odpovědět 20.7.2018 17:01
Avatar
Marek Uhlik
Člen
Avatar
Marek Uhlik:20.7.2018 17:07

A píše to tuhle chybu "error: assignment of read-only location ‘*text’ *text = "A"; "

 
Nahoru Odpovědět 20.7.2018 17:07
Avatar
Jindřich Máca
Tým ITnetwork
Avatar
Odpovídá na Marek Uhlik
Jindřich Máca:20.7.2018 19:29

To je tak, když si parametr funkce předáš jako neměnou konstantní hodnotu pomocí const a pak ji chceš přepisovat... :-`

Doporučuji si nejdříve dobře nastudovat, co která klíčová slova dělají, než je tam bez rozmyslu psát. Viz. třeba https://www.itnetwork.cz/…ntní-hodnoty ;-)

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +1 20.7.2018 19:29
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Marek Uhlik
patrik.valkovic:20.7.2018 20:05

Druhým problémem je, že máš pole charů. Když ukazatel dereferencuješ, tak dostaneš znak.
V C++ je cokoliv ve dvojitých uvozovkách opět pole znaků. Znak (tedy char) se píše do uvozovek jednoduchých (tedy 'A').

Editováno 20.7.2018 20:06
Nahoru Odpovědět  +1 20.7.2018 20:05
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Marek Uhlik
Člen
Avatar
Marek Uhlik:20.7.2018 21:34

Jindřich Máca Jojo co které dělají to vím, jen jsem na to teď úplně zapomněl.Furt jsem přemýšlel jak to obejít aniž bych to musel měnit. Ale radši si to přečtu protože když jsem to zapomněl tak to neumím na 100% :D

patrik.valkovic To jsem tam měl,ale jak jsem zkoušel všechny možné kombinace tak tam tohle zůstalo.

Ale jinak díky oběma.

 
Nahoru Odpovědět  +1 20.7.2018 21:34
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.