#include
#include
#include
using namespace std;
int main()
{
char* arr = new char('A');
cout << *arr << endl;
return 0;
}
现在arr指向的内存空间只有一个'A',可不可以直接拓宽这个内存空间的大小,还保留这个内存空间中的数据。如果是重新使用arr = new char[10]这样的话,应该是直接改变了arr指向的内存地址吧,可不可以实现拓宽原arr指向地址的空间大小,还保留着原来的数据'A'呢?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
方法有很多,列举两种:
使用
memcpy人工移动数据:整套不要用
new,改换成malloc、realloc:C++做法应该是使用vector来应对内存的动态需求这样:
vector<char> arr;
arr.push_back('A');
1.不可以实现拓宽原arr指向地址的空间大小。
2.新开空间,地址肯定会变。
3.至于保留原内容,复制过去就行了。