假设某个内存位置0xF0000包含四个字符串"four"
。
这是有效的:
char *mem = (char*) 0xF0000;
然后是mem [0] =='f'?
答案 0 :(得分:5)
是的,如果0xF0000是四个字符串“four”
的起始地址,则它是有效的答案 1 :(得分:3)
当然可以。如果使用正确的权限(写入)映射内存,则它应该对操作系统没有任何影响。
测试此方法的简便方法是使用gdb
。在指令尝试更改它之前,您可以中断并更改mem
的值,使其指向某个内存。
特别是,不要尝试修改字符串文字(char *readonly = "mystr"
);
答案 2 :(得分:1)
是的。如果你使用malloc,或者在堆栈上分配它,那么它应该按预期运行。如果您刚刚选择了该地址,请注意,一般情况下,它可能会被其他任何时候覆盖。