You don't, it has to be in Assembly or calling underlying OS APIs.
So also a nail in C's coffin.
You don't, it has to be in Assembly or calling underlying OS APIs.
So also a nail in C's coffin.
exit: longjmp.
According to C99 section 6.5 paragraphs 6-7 that would be undefined behavior. The declared type of the object is uint8_t and you're accessing it through an lvalue expression which is not compatible with uint8_t. (You can access any object through a character-type lvalue, but the reverse is not true.) The malloc() function is required to return memory which is disjoint from any other object—that includes your uint8_t array.
Besides aliasing concerns, your character array may not be properly aligned for whatever type is being stored there and there is no way within the C99 standard to determine the alignment of the array or the required alignment for the stored type.
> exit: longjmp.
That might work, in a single-threaded program, if you longjmp() back to main() and return. There's no telling what might happen if you did that from another thread, of course, but then C99 doesn't really cover threads.
So exit() gets to call longjmp() which definitely can only be done in Assembly, back to step 1.
C was a guest language via MPW, and plugged into those APIs.