x86 マシンでメモリ アドレス アライメント エラーを作成したいと考えています。なぜ私はこれをしたいのですか?SIGBUS ハンドラを明示的にテストしたいからです。
これが私のテスト例です。
#include <stdio.h>
int main(int argc, char** argv) {
unsigned char array[32];
short *short_ptr;
short_ptr = (short *)&array[1];
*short_ptr = 0xffff; // Store
printf("value of c = %x", *short_ptr);
return 0;
}
これにより、 SPARCアーキテクチャーでミスアライメントの例外が発生することはわかっています。しかし、私は一生、x86でそれを行う方法を理解できません。
どうすればいいですか?