Jak odstranit chybu/warning: return discards 'const' qualifier from pointer target type? – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jak odstranit chybu/warning: return discards 'const' qualifier from pointer target type? – C / C++ – Fórum – Programujte.comJak odstranit chybu/warning: return discards 'const' qualifier from pointer target type? – C / C++ – Fórum – Programujte.com

 

oxidián0
Grafoman
6. 3. 2015   #1
-
0
-

   

#define RGB_strings (const char*[5]){ "rgb","R","G","B","RGB" }

char * getRGB_str(int a){
    return RGB_strings[a];
}

Chápu to tak že ten return změní pointer char* na něco jiného...

A ještě poddotaz, jak vypnout hlášku

"warning: declaration does not declare anything"

Nahlásit jako SPAM
IP: 78.45.199.–
PiranhaGreg0
Stálý člen
6. 3. 2015   #2
-
0
-

Měl by jsi to zařídit takto 

const char * RGB_strings[] = { 
	"rgb", "R", "G", "B", "RGB" 
};

const char * getRGB_str(int a) {
	return RGB_strings[a];
}

Ta tvoje verze je špatně hned z několika důvodů. Ten největší je, že po dokončení funkce getRGB_str se odkazuješ na špatný data kdesi na zásobníku, který už tam pravděpodobně nejsou.

A ještě poddotaz, jak vypnout hlášku

"warning: declaration does not declare anything"

 To musíš ukázat zdroják ;-).

Nahlásit jako SPAM
IP: 109.81.210.–
KIIV
~ Moderátor
+43
God of flame
6. 3. 2015   #3
-
0
-

#2 PiranhaGreg
ty retezce nema primo ve funkci, takze pokud to neni nejak blbe, tak odkazuje na globalni staticke pole.

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

No má tam #define, takže kompilátor to po nahrazaní maker vidí jako

char * getRGB_str(int a){
	return ((const char *[5]){ "rgb", "R", "G", "B", "RGB" })[a];
}

což si právě myslím, že je pouze lokální pole. Ale na 100% jistej si nejsem.

Nahlásit jako SPAM
IP: 109.81.210.–
KIIV
~ Moderátor
+43
God of flame
6. 3. 2015   #5
-
0
-

#4 PiranhaGreg
aha, mas pravdu, tak tady sem define fakt necekal :D

(a zacinam mit pocit, ze jsem i sledoval spatnej kod)

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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, 15 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032025 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý