You are using a vector of char pointers??? A vector of chars might be ok but is not really that suitable IMHO either given you want a statically sized block of memory that doesn't move...
Also your range checking is out, eg in PokeInt the check should be (offset+4 <= entity->buffer.size())...
Also your range checking is out, eg in PokeInt the check should be (offset+4 <= entity->buffer.size())...