如何用C编程语言手动分配指针地址?
你如何用C编程语言手动指定一个指针地址(例如指向内存地址0x28ff44
)?
喜欢这个:
void * p = (void *)0x28ff44;
或者如果你想要它作为char *
:
char * p = (char *)0x28ff44;
…等等。
如果你真的指向了某个东西,实际上并不意味着要改变,添加一个const
:
const void * p = (const void *)0x28ff44; const char * p = (const char *)0x28ff44;
…因为我认为这一定是某种“众所周知的地址”,而这些地址通常是(尽pipe绝不总是)只读的。
你的代码将是这样的:
int *p = (int *)0x28ff44;
int
需要是您引用的对象的types,或者可以是void
。
但要小心,以免您尝试访问不属于您的程序的内容。
int *p=(int *)0x1234 = 10; //0x1234 is the memory address and value 10 is assigned in that address unsigned int *ptr=(unsigned int *)0x903jf = 20;//0x903j is memory address and value 20 is assigned
基本上在embedded式平台上我们直接使用地址而不是名字