malloc allokiert zuviel...
-
hi,
immer wenn ich malloc aufrufe, um bsw. einen 8 Zeichen langen String zu allokieren, werden zwar 8 Byte im Hauptspeicher reserviert, allerdings werden dann immer noch vier ²-Zeichen angehängt, und das nervt einfach (besonders wenn man das ganze dann mit strcat anhängen will). Woher kommt das und wie kann man das umgehen?
-
das Problem liegt nicht an malloc, sondern daran, dass du nicht auf eine richtige 0-Terminierung achtest, die bei C-Strings erwartet wird.
char foo[3]={'a','b',0}; char bar[3]="ab"; //entspricht dem oberen
-
alles klar, danke, ich bin irgendwie nach über einem Jahr C immernoch voll der Noob
(in PHP ist alles viel einfacher...)
-
Da es hier um C++ geht, soll nicht der Hinweis fehlen, dass du bei der Verwendung von std::string genauso wenig Probleme wie bei php hast.