since the pointed memory is in heap or memory pool, as long as the block of the memory that the pointed memory resides is mapped into the process, it's accessible.
You can access the array doesn't mean you are safe to access it. Because the system or the tool of memory pool is officially managing the piece of memory, they might write something after the address of "pointer + sizeof(int)" and break your array.