#1 Lukáš
V obecném případě je nejlepší vracet vedle výsledku i chybovou hodnotu, v C typicky takto:
int err; int result = func(some_arg, &err);
Tím se vyřeší předání dodatečné hodnoty a není nutné řešit alokaci paměti (vše je na zásobníku). Místo int se dá využít v případě potřeby struktura.