Should I expect the user to provide a memory chunk of sufficient size, say, for copying a file into a buffer? Or should I allocate the memory myself, and expect the user to free it when they're done? For example, the function
strdup() allocates memory itself, but the function
fread() expects only a buffer of sufficient size.