malloc() will call the system call internally (in unix its sbrk()) to get the memory block which is greater in size than requested. Later if the user needs more memory then malloc() will give from the extra chunk that it got.