Сначала вы должны установить указатель на правильный адрес (чтобы он указывал туда, где он вам нужен).
Затем, чтобы написать по этому адресу, вы разыменовываете указатель и выполняете присваивание. Это будет выглядеть примерно так:
int main ()
{
volatile int *point = (int *)0x983234;
*point = 20;
return 0;
}
Обратите внимание, volatile
ключевое слово. Рекомендуется использовать его так, чтобы компилятор не делал никаких предположений и не оптимизировал его.
Если у вас есть больший кусок данных для хранения, используйте memcpy
или memmove
с этим адресом для копирования данных с / на него, например:
#include <string.h>
int main ()
{
const char data[] = "some useful stuff";
memcpy ((char *)0x983234, data, sizeof (data));
return 0;
}