Функции, такие как strcpy()
, malloc()
, strlen()
и другие другие принимают свои аргументы или возвращают значения как size_t
вместо int
или unsigned int
по понятным причинам.
Некоторые функции файлов, такие как fread()
и fwrite()
, также используют size_t
. По расширению, было бы ожидать, что char* fgets (char *str, int num, FILE *stream)
должен использовать аргумент size_t
, а не int
как аргумент для его размера буфера.
Однако fgets()
использует int
. Есть ли объективное объяснение, почему?