假设某些内存位置0xF0000包含四个字符串"four"
。char * from memory address
所以这是有效的:
char *mem = (char*) 0xF0000;
,然后是MEM [0] == 'F'?
假设某些内存位置0xF0000包含四个字符串"four"
。char * from memory address
所以这是有效的:
char *mem = (char*) 0xF0000;
,然后是MEM [0] == 'F'?
当然是。如果内存映射的权限正确(写入),它应该与操作系统无关。
一个简单的测试方法是使用gdb
。你可以打破并改变mem
的值,使它指向一些内存,就在一条指令试图改变它之前。
特别是,不要试图修改字符串文字(char *readonly = "mystr"
);
是的,它是有效的,如果0xF0000是四个字符的字符串的起始地址“四个一”
是的。如果您使用malloc或将其分配到堆栈上,则它应该按预期行事。如果您刚刚选择了该地址,请注意,一般情况下,它可能随时被其他内容覆盖。
如果你只是来自bootloader,'unsigned char * videoram =(unsigned char *)0xb8000;'让你在屏幕上写... –
有趣,但只是试图找到smbios入口点结构的地址。 – yolo
你的意思是,“然后是'mem [0] == f'”? – razlebe
是.............. – yolo
谢谢......编辑。 – razlebe