It is low level ;). There is a function like malloc that allocates memory, but there is no free, since re-using freed memory is a common source of bugs in C programs. The idea is that you do all your memory allocation (buffers etc.) during program startup. If an allocation fails, you log the error and exit. Once the program is up and running, you don't allocate any more. Embedded systems, remember. You do everything in fixed memory regions. In critical systems there are some tools that make sure your stack allocations never exceed whatever. Ada programs are not allowed to crash.
That said, most Ada implementations do have something like free, but it is not part of the standard and you are supposed to be very careful with it.
You might like this, "random walk through Ada": http://cowlark.com/2014-04-27-ada/index.html