C ++:如何使用相同的内存空间重新分配数组,但尺寸减小了

问题描述 投票:0回答:1

如果我有一个动态分配的数组char* arr = new char[100];

1:如果我想保留数组的前半部分,并取消分配最后50个,我该怎么做。因此,我基本上得到了相同的指针,但是我得到的好像是char* arr = new char[50]

2:如果我想保留数组的后半部分并取消分配前50个,我该怎么做。因此,从本质上讲,我得到的是原始指针加50,但是好像我做了char* arr = new char[50]

我可以做delete[99] arr;并使其循环。我可以通过重新分配数组来做到这一点,但我希望它尽可能快。

[请不要在拼写和语法方面困扰我,我知道我需要对此做得更好。

如果我有一个动态分配的数组char * arr = new char [100];。 1:如果我想保留数组的前半部分并取消分配后50个,我该怎么做。所以我基本上与得到相同的...

c++ arrays c++11 memory-management
1个回答
2
投票

您根本无法更改通过new进行的分配的大小。

© www.soinside.com 2019 - 2024. All rights reserved.