AFAIK,在 C 语言中,字符串文字存储在只读存储器中。
它实际上存在于硬件上的什么位置。
根据我的知识堆在 RAM 上。如果我错了,请纠正我。
堆和只读内存有什么不同?
它依赖于操作系统吗?
这通常是在硬件辅助下完成的。
可以告诉硬件的虚拟内存子系统将页面标记为只读。当应用程序尝试写入只读页时,硬件会生成操作系统捕获的错误。操作系统可以判断应用程序试图写入只读页面并结束您的程序。
因此,操作系统/加载程序确保字符串文字所在的页面被标记为只读。
堆和只读内存是正交问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)