struct Example
{
char* string;
int x;
};
Run Code Online (Sandbox Code Playgroud)
当我分配示例8的新实例时,分配字节(假设sizeof(char*)= 4).所以当我这样称呼时:
Example* sp = new Example();
sp->string = "some text";
Run Code Online (Sandbox Code Playgroud)
如何分配字符串?是放在一个随机的空记忆位置?或sp和成员字符串之间是否存在某种关系?
那么,"一些文本"会进行动态内存分配吗?
像这样的字符串文字被放在编译器想要放置它们的任何地方,它们具有静态存储持续时间(它们持续整个程序的生命周期),并且它们永远不会在内存中移动.
编译器通常将它们存储在可执行文件本身的只读部分内存中,所以当你这样做something = "some text";时只需something指向内存中的那个位置.
| 归档时间: |
|
| 查看次数: |
259 次 |
| 最近记录: |