0
我在想如何std::string
在內存方面處理其緩衝區。C++字符串+ =運算符內存結果
據我所知,char buf[BUFFER_SIZE];
將被分配在堆棧上。所以如果它開始讀入該緩衝區
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;
所以我的問題主要是在+=
操作。當緩衝區與字符串連接時,是否需要重新分配更多內存?作爲後續問題,這個記憶是否需要成爲一個連續的塊?如果是這樣,那麼這個分配是堆還是堆棧操作?
'string'不是'的char []'!這是C++,而不是C. – Olaf
@ 9er面試不是考試。在面試中從不做任何任務。 –
僱主真的希望軟件工程師知道標準類背後的潛在機械嗎? – KevinDTimm