-1

最近、androidのlibc-initコードを読んでいます。malloc_debug_leak.cpp70行目と263行目のコードを読むと、以下のようになっていました

#define GUARD               0x48151642 
static uint32_t MEMALIGN_GUARD      = 0xA1A41520;

GUARDとの意味は知ってMEMALIGN_GUARDいますが、値の意味がわかりません。たとえば、static uint32_t MEMALIGN_GUARD = 0x0001is OK? やその他の値です。0xA1A41520役立つ情報はありますか?</p >

http://i.stack.imgur.com/9lgzv.png

http://i.stack.imgur.com/ZMM5u.png

4

1 に答える 1

0

値の意味がよくわからない

これは、一般的なプログラミングの間違いを検出するための魔法の値です。詳細な説明については、このウィキペディアの記事を参照してください。

0x0001大丈夫ですか?

いいえ、「他の意味と間違われにくい独自の独自の価値」という性質を欠いています。

特定のロケーション メモリに値が表示0x1される場合、そのような値は多くの異なるコード シーケンスによってそこに配置される可能性が非常に高くなります。一方、 が表示0xA1A41520されている場合、 を使用しているコード以外のコードによってその値が配置された可能性はほとんどありません (可能性はありますが) MEMALIGN_GUARD

于 2014-12-25T00:52:28.883 に答える