メモリのブロックをゼロに初期化するのは慣用的です
memset(p, 0, size_of_p);
マイナス 1 に初期化したい場合は、次のことができます。
memset(p, -1, size_of_p);
p の型に関係なく、2 の補数表現では、マイナス 1 は 8 ビット整数の場合は 0xff、16 ビット整数の場合は 0xffff、32 ビット整数の場合は 0xffffffff であるためです。
私の懸念は、そのような 2 つの補完的な表現が、現代のコンピューターの領域で普遍的に適用できるかどうかです。このようなコードは、プラットフォームに依存せず、他のプラットフォームに移植できるほど堅牢であると期待できますか?
前もって感謝します。