根据我的理解,数据分段由两部分组成。
1. Initialized segment.
a. Read Only.
b. Read/Write.
2. Uninitialized segment.
示例:
int main(void)
{
char* cptr = "Hello"; // The string "Hello" will sit in 'Read only' memory.
//cptr[2] = 'Z'; // Gives seg fault.
...
return 0;
}
我的问题是,'只读'内存仅用于存储字符串常量吗?
答案 0 :(得分:3)
你说得对,差不多......程序中有三种全局静态数据:
const
全局数据。 不一定在数据部分,它可以在程序的文本部分(通常是.rodata
段),因为它通常无法通过程序修改。.data
段)。.bss
段)所需的大小。