[ERLEDIGT] Strings oder char*
-
Danke schonmal für die Antworten.
Hat die String Klasse eine obere Grenze?
-
darkfate schrieb:
Hat die String Klasse eine obere Grenze?
Theoretisch nicht. praktisch wird natürlich irgendwo Ende sein und eine Exception (bad_alloc oder dergleichen) fliegen, das ist allerdings normalerweise weit jenseits der 64k, die du in deiner char*-Version festgenagelt hast.
Aus dem Grund ist auch die Abfrage in De-Be's Version vom C++-Standpunkt her ebenso unnötig wie die Präfixe für die ungarische Notation.
-
pumuckl schrieb:
Theoretisch nicht.
Naja, theoretisch dürfte die Obergrenze bei
std::numeric_limits<std::string::size_type>::max()
liegen...
-
Hat schon irgendwer erwähnt, dass die set_comment Funktion undefiniertes Verhalten erzeugt?
comment[len+1] = '\0';
-
Braunstein schrieb:
Hat schon irgendwer erwähnt, dass die set_comment Funktion undefiniertes Verhalten erzeugt?
comment[len+1] = '\0';
Huch?
-
darkfate schrieb:
Braunstein schrieb:
Hat schon irgendwer erwähnt, dass die set_comment Funktion undefiniertes Verhalten erzeugt?
comment[len+1] = '\0';
Huch?
Good catch, Braunstein!
darkfate, Du meintest wohl comment[len] = '\0';
Es ist aber sowieso überflüssig, da sich strcpy schon um die Nullterminierung kümmert.
-
Braunstein schrieb:
Hat schon irgendwer erwähnt, dass die set_comment Funktion undefiniertes Verhalten erzeugt?
comment[len+1] = '\0';
Und das ... dürfte auch nicht kompilieren.
-
Fellhuhn schrieb:
Braunstein schrieb:
Hat schon irgendwer erwähnt, dass die set_comment Funktion undefiniertes Verhalten erzeugt?
comment[len+1] = '\0';
Und das ... dürfte auch nicht kompilieren.
Da irrst du dich gewaltig, MSVC kompiliert nur so, so und nicht anders
Daher dieser Windows Experience.Danke für den Hinweis Braunstein
-
Wie sieht dann get_comment aus? So in etwa?
std::string const &Geoobject::get_comment() const{ return this->comment; }
-
darkfate schrieb:
Wie sieht dann get_comment aus? So in etwa?
std::string const &Geoobject::get_comment() const{ return this->comment; }
ja. wobei das this-> weggelassen werden kann.