I'm new in C++. Recently I implemented Binary reader/writer for my multiplayer game. Now reading bytes looks like this:

    static int32_t readInt32(std::vector<uint8_t>& msg, int *off)
    {
    	if ((*off) > msg.size()) return 0;
    	int32_t result; int size = sizeof (result);
    	memcpy(&result, msg.data() + (*off), size); (*off) += size; 
    	return result;
    }

And writing byte's looks like this:

    static void writeInt32(std::vector<uint8_t>* msg, int32_t value)
    {
    	uint8_t const * array = reinterpret_cast<uint8_t const *>(&value);
    
    	for (std::size_t i = 0; i != sizeof(value); ++i)
    	{
    		(*msg).push_back(array[i]);
    	}
    }

How can I improve my Binary reader/writer?