【发布时间】:2012-02-26 07:09:28
【问题描述】:
我只是好奇,字符串是如何存储在内存中的?例如,当我这样做时:
string testString = "asd";
它分配了 4 个字节,对吗? a + s + d + \0。
但后来,当我想为这个字符串分配一些新文本时,它可以工作,但我不明白如何。例如我这样做:
testString = "123456789"
现在它应该是 10 个字节长。但是如果这样的字符串没有空间怎么办?假设从字符串开头的第 5+6 个字节被其他 2 个字符占用。 CPU如何处理它?它在内存中找到适合该字符串的全新位置?
【问题讨论】:
-
可能不是完全重复,原来的问题已经知道内存是由字符串动态分配的,我不确定这里是不是这样。无论如何,我不会投票重新开放。