Q:

Protobuf parse from char* with unknown size

Is there any way to parse Protobuf object from only a char pointer in C++ ?  The problem is that the serialized bytes might contain '\0' which makes it impossible to determine the end of array.  And The only thing I get from a streaming API is a char pointer to serialized bytes, I cannot change the API. 

A:

The only thing I get from a streaming API is a char pointer to serialized bytes, I cannot change the API. 

Then you are at an impasse, and this API has never worked. 
The protocol buffers documentation explicitly states that there is no framing information encoded into the messages.  You must provide your own.