ポインタアドレスを手動で割り当てる方法(例:メモリアドレス0x28ff44
)Cプログラミング言語で?
このような:
void * p = (void *)0x28ff44;
または、char *
:
char * p = (char *)0x28ff44;
...等。
あなたが本当にあなたが何かを指しているのであれば、本当に変更するつもりはないので、const
を追加してください:
const void * p = (const void *)0x28ff44;
const char * p = (const char *)0x28ff44;
...私はこれが何らかの「よく知られたアドレス」でなければならないと考えているので、それらは通常(常にではないが)読み取り専用です。
コードは次のようになります。
int *p = (int *)0x28ff44;
int
は、参照しているオブジェクトのタイプである必要があります。または、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
基本的に組み込みプラットフォームでは、名前の代わりに直接アドレスを使用しています
書き込み:
int *p=(int *)0x1234 = 10;
一部のコンパイラでは無効です。次の2つの指示に分割する必要があります。
int *p=(int *)0x1234; *p = 10;