繁体   English   中英

来自内存地址的char *

[英]char* from memory address

假设某个内存位置0xF0000包含四个字符串"four"

所以这是有效的:

char *mem = (char*) 0xF0000;

然后是mem [0] =='f'吗?

是的,如果四个字符串“ four”的起始地址为0xF0000,则它是有效的

当然是啦。 如果使用正确的权限(写)映射内存,则对操作系统没有任何影响。

一种简单的测试方法是使用gdb 你可以打破和改变的值mem的使它指向一些内存,指令试图改变它的权利之前。

特别是,请勿尝试修改字符串文字( char *readonly = "mystr" );

是的。 如果使用malloc或在堆栈上分配了malloc,则它的行为应符合预期。 如果您只是选择了该地址,请注意,一般而言,它随时可能被其他内容所覆盖。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM