Столкнулся с интересным феноменом. Я его не понимаю. Может кто объяснит популярно.
Сначала приведу пример:
Есть два варианта:
1)
Код
OW_Rom_Device=CurrentAddr=malloc(8); // Çàðåçåðâèðîâàòü ïàìÿòü ïîä ROM
2)
Код
OW_Rom_Device=malloc(0);
....
CurrentAddr=malloc(8); // Çàðåçåðâèðîâàòü ïàìÿòü ïîä ROM
В первом случае адреса OW_Rom_Device и CurrentAddr - одинаковы.
Во втором CurrentAddr больше на 2 байта.
Вопросы: почему и зачем?
(Пояснения:между данными операторами с кучей никто не работает; если вместо malloc(0) ввести malloc(1) разница будет 3 байта)
Очень похоже что компилятор записывает адрес кучи, но зачем?