014
08.12.2003, 08:49 Uhr
ao
(Operator)
|
Zitat: |
~newbie postete Der String soll nur so viel Speicher verbrauchen, wie er lang ist (unter Berücksichtigung des Stoppbytes natürlich)
|
Dann müsstest du ihn vorher messen, etwa so:
C++: |
char * pszWork = new char [strlen ("Hallo Welt") + 1]; strcpy (pszWork, "Hallo Welt");
|
Wobei man natürlich solche Konstanten möglichst nie mehrfach im Programm auftauchen lässt, sondern entweder mit #define ein Symbol draus macht oder eine const-Variable deklariert. Ist klar, warum?
Das Mischen von C und C++ ist zum Beispiel da kritisch, wo auf Resourcen zugegriffen wird (Dateien, Bildschirm, ...), z.B. buntes Abwechseln von printf und cout. Es ist nämlich nicht garantiert, dass beide Funktionen so mit der Resource Bildschirm umgehen, dass die jeweils andere mit dem Zustand, den sie vorfindet, klarkommt.
Und eigentlich ist nicht das Mischen von C und C++ das Problem, sondern die gemischte Verwendung von untereinander konkurrierenden Bibliotheksfunktionen. Das kann auch in reinen C- oder reinen C++-Programmen der Fall sein.
ao |