Zumindest gibt's die Möglichkeit, zur Laufzeit zu reagieren. Wünschenswert wäre aber ein Fehler zur Linkzeit
Code:
#include <avr/io.h> // RAMEND
extern char __heap_start; // from linker script

int main ()
{
	if ((uint16_t) & __heap_start > RAMEND)
		panic();
	...
}
Nich das Gelbe vom Ei, aber immerhin...

Das gehl allerdings nur modulo 65535. Wenn du ein
char[65600] machst, landest du nicht in panic().