>>168334
> 128 кебибайт памяти
До того как маллоко-подобная штука вернёт память тебе, сначала нужно сделать страницу виртуальной памяти. В прыщах есть размеры страниц в 4к и 1м, твоё первое выделение делает 4к ммап скорее всего, а ты пытаешься обратиться всего к адресу 800 от начала той страницы, этот адрес конечно же существует.
Используй valgrind
(вот к примеру его вывод)
% valgrind ./a.out
==5859== Memcheck, a memory error detector
==5859== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==5859== Using Valgrind-3.11.0.SVN and LibVEX; rerun with -h for copyright info
==5859== Command: ./a.out
==5859==
--5859-- UNKNOWN mach_msg unhandled MACH_SEND_TRAILER option
--5859-- UNKNOWN mach_msg unhandled MACH_SEND_TRAILER option (repeated 2 times)
--5859-- UNKNOWN mach_msg unhandled MACH_SEND_TRAILER option (repeated 4 times)
==5859== Invalid write of size 4
==5859== at 0x100000F34: main (test.c:7)
==5859== Address 0x10081e650 is 336 bytes inside an unallocated block of size 2,752 in arena "client"
==5859==
==5859== Invalid read of size 4
==5859== at 0x100000F42: main (test.c:8)
==5859== Address 0x10081e650 is 336 bytes inside an unallocated block of size 2,752 in arena "client"
==5859==
или используй clang для разработки, потому что его сообщения вменяемее чем у гцц
http://clang.llvm.org/docs/AddressSanitizer.html