int m_error может использоваться для хранения адреса с помощью:
m_error = (int)ptr;
Но, как предлагали другие комментарии, вы, как дизайнер, должны понимать, что это значит и почему это может иногда работать, а может и не работать в другое время. Все зависит от того, в каком диапазоне адресов работает ваша платформа.
Если вы не уверены, каков диапазон адресов, возвращаемый mmap () , вам нужно будет обеспечить защиту в вашей программе, чтобы предпринять соответствующие действия, если адрес находится вне диапазона int .
Если бы у меня был другой вариант, я бы передал значение указателя в функцию free_mem () , чтобы напечатать значение адреса.