When I use the function UserHal::MemoryInfo on my 3650 to ask the system the free memory available, the results are:

iTotalRamInBytes ~ 8 388 608
iMaxFreeRamInBytes ~ 7 634 900
iFreeRamInBytes ~ 2 000 000

1 / Why am I limited by the iFreeRamInBytes value when I try to allocate memory and not by the iMaxFreeRamInBytes value ?
Where does the difference between these values come from ?

2/ If I launch my application several times in the same configuration, the iFreeRamInBytes value is never the same and can vary about 1 Mb. What does it depend on ?

Thanks by advance.