Jistě, v tom příkladu jsem předpokládal, že error == NULL znamená není chyba. Je to v podstatě přesný ekvivalent autorova příkladu v Rustu s Result<i32, &'static str>. Obecná definice to samozřejmě není, jenomže C bohužel nemá generické typy, takže pro skutečně správnou obecnou definici by bylo třeba nasadit makra a už by to začalo být veselé. Překladač samozřejmě nic nehlídá, ale jsme v C, kde se všechno dělá ručně, takže v zásadě by to zůstalo idiomatické. Respektive to není o nic horší, než skutečnost, že nám překladač taky negarantuje, že pointer není NULL nebo že se při strcpy řetězec opravdu vejde do destinace.