warning: deprecated conversion from string constant to ‘char*’
bekommt man das besser weg als jedes mal (char *) vor "xyz" zu
schreiben?
Die Variable, die auf den konstanten string zeigt, als const char*
deklarieren (f�r konstante Strings ist das wohl angemessen.)
Man könnte darüber nachsinnen, was die Meldung bedeuten soll, und
eventuell daran denken, die Variable, der da eine Stringkonstante
zugewiesen wird, zum Typ "char []" umzudeklarieren.
HTH,
Markus
--
Nur weil ein Genie nix reißt, muß ja nun nicht gleich jeder Idiot
pausieren... Bully hats ja auch geschafft.
-- gUnter nanonüm in de.alt.anime
Ich habe so das Gefuehl das dein Problem C++ ist, nicht C.
C++ und C sind zwei verschiedene sprachen.
C++ ist hier offtopic.
Ich denke, du suchst die cstring() methode oder sowas. Oder wars c_string()?
Ach, c_str() heist das Kind.
Kannst ja mal gucken ob der compiler "Hallo".c_str() frisst, sonst muss das wohl
durch den Konstruktor oder reinterpretid gecasted werden oder was auch immer da
wieder fuer ein C++ schmonz noetig ist.
Gruss
Jan
--
With what, your bare hands?
Ja, indem man es nicht einem char*, sondern einen const char* zuweist
oder �bergibt.
Wenn das nicht geht, weil z.B. das Funktionsargument indirekt ver�ndert
wird, hat man sowieso undefiniertes Verhalten.
Marcel
Du bekommst es damit weg, und wenn Du Glück hast, funktioniert
das sogar so, wie Du Dir das vorstellst. Ich weiß ja nicht, was
genau Du vorhast, aber eine String*konstante* als -variable zu
übergeben, ist generell eine ganz schlechte Idee. Ohne näheren
Kontext ist es allerdings unmöglich, eine Lösung vorzuschlagen
(außer dynamischer Allokation und folgender String-Zuweisung).
mike
func("Text", a, b) führt zu der Meldung
Schuld ist vermutlich der, der func deklariert hat ohne const.
Da w�ren demnach frei eingestreute Literale wie "Text"
in func("Text", ...). Da sie keinen Namen haben und ihrer
Bedeutung nach nur von Menschen unterschieden werden
k�nnen (Fehlermeldung?, Schl�ssel? (hash), "Bin�rstring"-Trick?
u.a.m.), b�te sich bei der Gelegenheit eine Verbesserung
an, die 2 Fliegen mit 1 Klappe erschl�gt:
Setze Markierungen um die Literale, die dann zweierlei
leisten,
(1) sie machen die Literale der Sorte nach auffindbar
(2) sie bringen den compiler wie gew�nscht zum Schweigen
#define I18N_Schuldig(s) ((char*)s)
#define I18N_w(s) ((char*)s)
#define I18N_r(s) ((const char*)s)
func(I18N_Schuldig("Text"), a, b);
Bestimmt gibt es bessere oder der Aufgabe angemessenere Namen.