Ich frage mich, wie std::string
behandelt seine Puffer in Bezug auf Speicher.C++ String + = Operator Speicher Konsequenz
Wie ich es verstehe char buf[BUFFER_SIZE];
wird auf dem Stapel zugeordnet werden. Also, wenn es in diesen Puffer
string result;
oFile.read(buf, BUFFER_SIZE-1);
bytesRead = oFile.gcount(); //get # of chars read into buffer
buf[bytesRead] = '\0'; //terminate with a null
sFinal += buf;
So ist meine Frage in erster Linie auf dem +=
Betrieb Lese beginnen. Wenn der Puffer mit der Zeichenfolge verkettet wird, muss mehr Speicher neu zugewiesen werden? Als eine Follow-up-Frage muss dieses Gedächtnis ein kontinuierlicher Block sein? Wenn ja, wäre diese Zuweisung eine Heap- oder Stapeloperation?
'string' ist kein' char [] '! Das ist C++, nicht C. – Olaf
@ 9er Interview ist keine Prüfung. Machen Sie niemals Aufgaben in einem Interview. –
Erwarten Arbeitgeber wirklich, dass SW-Ingenieure die zugrunde liegenden Machenschaften hinter Standardklassen kennen? – KevinDTimm