If a malloc allocation fails, should we try it again?
malloc
In something like this:
char* mystrdup(const char *s) { char *ab = NULL;
No, never. If malloc returns NULL, that indicates an error, and you should probably abort.