-1
假设有一个由新的位置制作的指针,它的大小是4,如何将它放大而不复制到其他指针并将其删除?如何扩展放置新指针?
int* ptr = (int*)(::operator new(sizeof(int))); //how to make it bigger than now?
假设有一个由新的位置制作的指针,它的大小是4,如何将它放大而不复制到其他指针并将其删除?如何扩展放置新指针?
int* ptr = (int*)(::operator new(sizeof(int))); //how to make it bigger than now?
您无法调整由::operator new
分配的内存大小。你唯一能做的就是用::operator delete
删除它,然后分配新的内存。
PS:关于术语的一些注意事项:
::operator new
没有放置新。使用语法new(ptr) class(arguments)
调用Placement new,并用于调用构造函数以初始化尚未初始化的内存(例如由::operator new
分配的内存)。 ::operator new
简称为operator new。
指针的大小指的是用于存储指针本身的字节数(通常在32位平台上是4个字节,在64位平台上是8个字节)。你的意思是分配内存的大小,即指针指向的内存大小。
非常感谢! – LzxHahaha 2014-09-28 14:13:48