Как вы назначаете адрес указателя вручную (например, на адрес памяти 0x28ff44
) на языке программирования C?
Как назначить адрес указателя вручную на языке программирования 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;