Vánoční nadílka Vánoční nadílka
Až 80% zdarma! Předvánoční BLACK FRIDAY akce. Více informací

Diskuze: Změna hodnoty pointeru

C a C++ C a C++ Změna hodnoty pointeru American English version English version

Aktivity (1)
Avatar
Marek Uhlik
Člen
Avatar
Marek Uhlik:20. července 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. července 17:01
Avatar
Marek Uhlik
Člen
Avatar
Marek Uhlik:20. července 17:07

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

 
Nahoru Odpovědět 20. července 17:07
Avatar
Jindřich Máca
Tým ITnetwork
Avatar
Odpovídá na Marek Uhlik
Jindřich Máca:20. července 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. července 19:29
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Marek Uhlik
patrik.valkovic:20. července 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. července 20:06
Nahoru Odpovědět  +1 20. července 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. července 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. července 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.