IAR EWARMコンパイラを使用してCでこれを実行します。IARコンパイラのポインタ
uint8_t packet[2048];
uint32_t* src = (uint32_t*)&packet[9];
uint32_t var = *src++;
この最後の行でバスフォールトが発生します。
uint8_t packet[2048];
uint32_t* src = (uint32_t*)&packet[9];
uint32_t var = 0xFE;
*src++;
ここではバス障害はありません。私はそれが私が指すと期待しているデータへのデバッガのsrcポイントを見ることができます。インクリメントは期待通りに機能しますが、それを読み取ろうとするとバス障害が発生します。
助けが必要ですか?
これは情報のランダムなまとまりです。答えるだけでなく、尋ねられたことを理解することさえも不十分です。 –
私には明らかです。あなたは私の関数のプロトタイプを持っています。ポインタを渡すときにポインタをどのように参照するかを見ることができます。実際の関数呼び出しがあります。そして、実際のエラーとともにエラーが発生した関数の実際の行があります。 – lusher00
ちょうどFYI - 現時点ではっきりしない3つの近い票があります。 –