003
22.09.2003, 19:26 Uhr
0xdeadbeef
Gott (Operator)
|
Ach sorum. Hm. Das ist nicht so einfach, weil du in denselben Speicherbereich schreibst, aus dem du auch liest. Was ginge:
C++: |
char text[] = "Hello, ", buffer[1024] = "World!"; char buf2[1024]; sprintf(buf2, "%s%s", text, buffer); strcpy(buffer, buf2);
|
...aber das ist natürlich schneckenlahm. Wenn du unbedingt wieder in denselben Buffer schreiben musst, kommst du da nicht so ohne weiteres drum herum, deswegen würde ich einfach den anderen Buffer weiterverwenden. In C++ dagegen kannst du das so machen, wie du es dir vorstellst. Die meisten STL-Implementierungen sind auch ziemlich stark optimiert und ziehen da ein paar fiese Tricks mit den Buffern, von daher ist das auch performacetechnisch nicht soo dramatisch.
Naja, eigentlich sind die Tricks mit den Buffern nicht soo fies, aber für nen Anfänger nicht allzuleicht zu durchschauen. Die machen da normalerweise quasi das ganze Speichermanagement von Hand. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 22.09.2003 um 19:31 Uhr von 0xdeadbeef editiert. |