私が抱えている問題の1つは、変数を後でポイントにアクセスするためにメモリにキャストしようとすることです。ポインタキャストを使用するローカル変数
私は完璧に動作し、ここでのコード例があります:私のコードのどこにも
unsigned int *label = (unsigned int *)malloc(sizeof(unsigned int));
label = (unsigned int *) 0xFFAAFFAA;
を私は、この値ラベルにアクセスすることができ、私はそれを印刷しようとすると、それは、その値として0xFFAAFFAAを指します。私は、このようなように変数から割り当てるしようとした場合
しかし、:..私はちょうどメモリ内のいくつかのランダムなアドレスであると仮定しています0x7f252d6b5f00:
//all of this is inside a method.. so any variables declared would be local
unsigned int localVariable = 0xFFFFFFFF;
unsigned int *label = (unsigned int *)malloc(sizeof(unsigned int));
label = &localVariable;
結果は以下のように狂ったものになるだろう。私はこの問題が、関数内で動作し、グローバルではないローカル変数のためであることを知っています。しかし、私はこれの構文が何であるか把握することができません...
なぜ私はローカル変数を定義したいのですが、その変数に他の論理が加減算されるためです。それを最小限に保つためにそれを出す
編集:私はこれのような何かをすることができますか?
unsigned int localVariable = 0xFFFFFFFF;
unsigned int *label = (unsigned int *)malloc(sizeof(unsigned int));
*label = localVariable;
ここで何をしようとしていますか? 'label =(unsigned int *)0xFFAAFFAA;'は単純にポインタ自体を上書きします。 –
@OliverCharlesworthこんにちはオリバー、お兄さん。基本的に私がしようとしているのは、新しい符号なしを作成することです。減算して加算してその値をポインタ –
に割り当てるなど、いくつかのロジックを実行します。ビットをシフトしたり、私は通常の値でそれを行う必要があるので、それをコピーする –