Article View: de.comp.lang.c++
Article #1746Argghh! String-Literals nicht const! (War:Vergleich 'strcmp()' ...)
From: Joachim Zobel
Date: Mon, 04 Mar 1996 12:52
Date: Mon, 04 Mar 1996 12:52
33 lines
1959 bytes
1959 bytes
admin@rzaix13.uni-hamburg.de (Bernd Eggink) wrote: >Joachim Zobel (a2597420@athena.rrz.uni-koeln.de) wrote: >[...] >> Ich habe bisher char * verwendet und ueberlege im Moment, fรผr den >> Uebergang eine Stringklasse einzufuehren, die nicht alloziiert, >> sondern nur die Lรคnge prueft, und ansonsten den im _ctor uebergebenen >> Speicher verwendet. So eine Art Wrapper fuer strncpy. >Tu's nicht. Jedenfalls nicht, wenn der im ctor uebergebene Speicher >ein Stringliteral "blabla..." sein kann, denn in ein solches sollte >man keinesfalls hineinschreiben. Die Wirkung ist undefiniert. Es steht >dem Compiler z.B. frei, solche Literale in einem schreibgeschuetzten >Speicherbreich unterzubringen. Danke. War mir noch nicht aufgefallen. Scheint mir eine ziemliche Sauerei zu sein. Das ARM (2.5.4) sagt: String literals are of type char[] and not const char[] for compatibility with Classic C where early software took advantage of literals beeing distinct and modifiable. Das heisst: Man hat den Standard so gemacht, das alter Code zwar noch compiliert, aber undefiniertes Verhalten hat, anstatt den Compiler die entsprechenden Stellen anzeigen zu lassen. Was sollte das? Joachim "... ein Geschlecht erfinderischer Zwerge, die fuer alles gemietet werden koennen." - Bertolt Brecht - Das Leben des Gallilei
Technical Details
Message-ID:
<4hfekb$lbn@news.rrz.uni-koeln.de>Path:
arc1-ca.pugleaf.net!RRZ.Uni-Koeln.DE!usenetReferences:
<4h2pg1$cto@news.BelWue.DE> <PDZ9BGIH@wuschel.ibb.schwaben.com> <4hass8$75o@news.rrz.uni-koeln.de> <4hehoi$21n@rzsun02.rrz.uni-hamburg.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!RRZ.Uni-Koeln.DE!usenet From: a2597420@athena.rrz.uni-koeln.de (Joachim Zobel) Newsgroups: de.comp.lang.c++ Subject: Argghh! String-Literals nicht const! (War:Vergleich 'strcmp()' ...) Date: Mon, 04 Mar 1996 12:52:20 GMT Organization: Regional Computing Center, University of Cologne Message-ID: <4hfekb$lbn@news.rrz.uni-koeln.de> References: <4h2pg1$cto@news.BelWue.DE> <PDZ9BGIH@wuschel.ibb.schwaben.com> <4hass8$75o@news.rrz.uni-koeln.de> <4hehoi$21n@rzsun02.rrz.uni-hamburg.de> NNTP-Posting-Host: annexr2-16.slip.uni-koeln.de X-Newsreader: Forte Free Agent 1.0.82