Я думаю, что я понял выравнивание стека, которое составляет 4 байта, например, если я добавлю только один символ, его адрес будет справа от 4 байтов (немного раньше, если есть другие 1 или 2 байта)Сборка - выравнивание кучи - x86 intel
Все еще я не могу понять выравнивание в куче, я думал, что есть выравнивание по 4 байта или 8 байт, но вот что, когда я выделяю 100, а затем 20 байт, есть 4 байта между концом первого и началом второго, поэтому я догадался, что куча будет использовать выравнивание по 8 байт.
Путем последовательного выделения 1 4 7 8 9 14 16 17 байт Я заметил, что 1, 4, 7, 8, 9 принимают по 16 байт каждый и 14 16 17 принимают 24 байта, почему так?
Я использую C/C++ и используя malloc для выделения (то же самое с новым).
Спасибо.
Возможно, это зависит от того, как вы выделяете эти вещи, которые вы не указали. –
Извините, я использую C/C++, и я выделяю их с помощью malloc. – x4rkz