Нет, в коде нет ничего плохого. Вы ошибаетесь, полагая, что это RLIMIT_AS
имеет немедленный эффект malloc()
. В двух словах, последний (обычно, есть много вариантов) выделяет свою резервную память в кусках из кучи с brk()
отображенными по запросу страницами, mmap()
а затем вырезает эти куски в отдельные распределения. Шансы на то, что в вашем куче уже достаточно места, чтобы удовлетворить ваш malloc()
вызов, в то время как ваш новый RLIMIT_AS
будет влиять только на последующие вызовы brk()
и mmap()
. В целом, это совершенно нормально.