Question about system calls
In a standard operating system like Unix, no.  You can't directly make multiple requests.  But, you can make one big request for a lot of memory.  The system call lets you request a certain amount of memory, and you choose how much to request.

In practice your program doesn't make that system call every time you want to allocate memory. Instead, you have a standard library function, such as malloc(), which has a pool of available memory.  When you call malloc(), it selects a region of available memory and allocates that to the caller, and keeps track that it has been allocated.  When the available memory runs out, then it uses a system call to ask the operating system for a bunch more memory.  So, it might only need to invoke the system call infrequently, even if you call malloc() a lot.

See https://en.wikipedia.org/wiki/Memory_management#DYNAMIC, https://en.wikipedia.org/wiki/Sbrk, https://en.wikipedia.org/wiki/C_dynamic_memory_allocation, https://en.wikipedia.org/wiki/C_dynamic_memory_allocation.