2023.2.19
之前写的有问题,重新试了下。以下的代码是能够跑通的。问题的关键是如何获取到一个合法的地址。
---------------------------------------new start----------------------------------------------------------
#include <stdio.h>
int main()
{
int a = 0x0;
printf("&a=%p\n", &a);
int *p = (int*)&a;
*p = 0x12;
printf("*p:%d\n", *p);
return 0;
}
---------------------------------------new end----------------------------------------------------------
首先,随便找一块可用的内存地址。
int a = 1;
printf("&a=%p\n", &a);
某次的运行结果为: &a=0x7fff124b3cfc
int *p = (int*)0x7fff124b3cfc;
*p = 1;
int *p = (int*)0x7fff124b3cfc,告诉编译器,0x7fff124b3cfc这个地址存放一个int型的数据。