[英]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.