Пробовал. Но не нашел исчерпывающего ответа, чтобы понять смысл сей конструкции:
/*
* Step 3: If the request could not be satisfied from a
* freelist entry, just prepare a new chunk.  This means we
* need to obtain more memory first.  The largest address just
* not allocated so far is remembered in the brkval variable.
* Under Unix, the “break value” was the end of the data
* segment as dynamically requested from the operating system.
* Since we don’t have an operating system, just make sure
* that we don’t collide with the stack.
*/
Вот тут на картинке адрес этот изображён : avr-libc: Memory Areas and Using malloc()
Это я понял.
Я не понял в каких случаях он может быть равен нулю.
Так сильно я не копал. Думаю, что это на случай промера размера доступной памяти в тот момент, когда глобальный brkval имеет дефолтовое значение 0. Например - malloc ещё не вызывался или типа того.