Какие гарантии в отношении младших битов дает malloc?

Когда вы вызываете C malloc , есть ли гарантия относительно того, какими будут первые несколько младших битов? Если вы пишете компилятор / интерпретатор для динамического языка, но хотите иметь фиксированные числа в форме bbbbbbbb bbbbbbbb. . . bbbbbbb1 (где b - бит) и указатели вида bbbbbbbb bbbbbbbb. . . bbbbbbb0 (или наоборот), есть ли способ гарантировать, что malloc вернет указатели, подходящие для такой схемы?

Должен ли я просто выделить на два байта больше, чем мне нужно, увеличить вернуть значение на единицу, если необходимо, чтобы соответствовать битовой схеме, и сохранить фактический указатель, возвращаемый malloc , во втором байте, чтобы я знал, что бесплатно ?

Могу ли я я просто предположим, что malloc вернет указатель с нулем в качестве последнего бита? Могу ли я предположить, что x86 будет иметь два нулевых бита в конце и что x64 будет иметь четыре нулевых бита в конце?

7
задан Stephen 23 August 2011 в 16:01
поделиться