Как назначить адрес указателя вручную на языке программирования C?

Как вы назначаете адрес указателя вручную (например, на адрес памяти 0x28ff44) на языке программирования C?

Ответ 1

Вот так:

void * p = (void *)0x28ff44;

Или, если вы хотите, чтобы это было как char *:

char * p = (char *)0x28ff44;

... и т.д..

Если вы указываете на что-то, что вы действительно, действительно не предназначено для изменения, добавьте const:

const void * p = (const void *)0x28ff44;
const char * p = (const char *)0x28ff44;

... так как я считаю, что это должен быть какой-то "известный адрес", и они обычно (хотя и не всегда) доступны только для чтения.

Ответ 2

Ваш код будет выглядеть следующим образом:

int *p = (int *)0x28ff44;

int должен быть типом объекта, на который вы ссылаетесь, или может быть void.

Но будьте осторожны, чтобы вы не пытались получить доступ к тому, что не принадлежит вашей программе.

Ответ 3

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 

В основном в встроенной платформе мы используем только адреса вместо имен

Ответ 4

Пишу:

int *p=(int *)0x1234 = 10;

не является законным для некоторых компиляторов. Вам нужно разделить на две инструкции:

int *p=(int *)0x1234; *p = 10;