ポインタと配列を使用して作業しています。ここでは、配列がメモリ内でどこから始まるか、またはポインタが保持するメモリアドレスを指定する必要があります。ポインタまたは配列はアドレスを取ります。しかし、私は値を尊重したり割り当てることができません。特定のメモリアドレスが割り当てられたポインタを参照解除する
次のコードを実行しようとしましたが、Segmentation Faultが発生しました。私はここで間違って何をしていますか?助けてください!配列のコード次
int *a = (int *)0x100;
cout << a << endl; //prints out 0x100
*(a) = 10; <------ seg fault on this line
、
int *b = new b[10];
b = (int *)0x0;
cout << b << endl; //prints out 0x0
b[0] = 10; <---- seg fault on this line
あなたが間違っていることは、割り当てられていないメモリアドレスにアクセスしようとしています... – immibis
ランダムな値にポインタを設定するだけで、逆参照できないと思います。 *有効なメモリアドレス*に設定する必要があります。あなたが本当にやろうとしていることがはっきりしていないので、正しい方法を示唆することはできません。そして、一つの言語だけを選んでください。 CとC++は異なる言語であり、実際に興味のある言語(C++のように見えます)に応じて答えが異なる場合があります。 – kaylum
組み込みシステムで実行されるこのコードはありますか? 0x100が有効なアドレスであり、そこにメモリが含まれているかどうかによって、動作する可能性があります。 –