I need to store a certain amount of data in the "char \*" in C++, because I want to avoid std::string to run out of memory, when exceeding max\_size(). But the data comes in data blocks from the network so I need to use reallocation every time I get the data block. Is there any elegant solution for char \* reallocation and concatenation in C++?