可能性の重複:私はちょうど好奇心
std::string and its automatic memory resizingC++の文字列はどのように格納されていますか?
は、どのように文字列がメモリに保存されますか?たとえば、私がこれを行うとき:
string testString = "asd";
それは4バイトを割り当てます、そうですか? a + s + d + \0
。
しかし、後でこの文字列に新しいテキストを割り当てる場合は機能しますが、どういう仕組みがわかりません。たとえば、私はこれを行う:
testString = "123456789"
これで10バイトの長さにする必要があります。しかし、そのような文字列のためのスペースがない場合はどうなりますか?文字列の先頭から5番目と6番目のバイトが他の2文字で取られているとしましょう。 CPUはそれをどのように処理しますか?それは、その文字列が適合するメモリ内の全く新しい位置を見つけますか?
正確な重複ではないかもしれないが、元の質問は、メモリが文字列によって動的に割り当てられていることをすでに知っていましたが、ここではわかりません。とにかく私は再開に投票しません。 –