Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Změna hodnoty pointeru

Aktivity
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
Tvůrce
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í
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
20.7.2018 19:29
Avatar
Odpovídá na Marek Uhlik
Patrik Valkovič: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
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 Valkovič 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
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.