如何在C++中为缓冲区分配更多内存?

bad*_*mer 3 c++ memory memory-management

我有指针str:

char* str = new char[10];
Run Code Online (Sandbox Code Playgroud)

我使用内存块str指向来存储数据.

如何为指向的缓冲区分配更多字节,str而不是丢失存储在缓冲区中的旧数据?

Kla*_*aim 17

请改用std :: string.它可以满足您的需要而无需担心分配,复制等.您仍然可以通过c_str()函数访问原始内存.

即便std::vector<char>适合你.


sha*_*oth 8

new[]另一个缓冲区,复制那里的数据(memcpy()用于那个),然后delete[]是旧的缓冲区,将新的缓冲区地址分配给最初持有旧缓冲区地址的指针.