更改数组头指针C ++

假设我有一个数组:

int* arr = new int[10];

并且我想摆脱 O(1)复杂度的数组中的第一个单元格 所以我想也许有办法改变数组头指针 我的意思是:

arr = arr + 1 ;

但这不能解决问题,程序仍将arr视为第二个单元格(我无法使用此指针重新分配)而不是内存块,数组头 因此,如果有人可以帮助我(摆脱O(1)复杂性的数组中的第一个单元格或更改数组头指针[我听说您可以将asm代码添加到cpp代码中,可以帮上忙吗? ])

xu414816349 回答:更改数组头指针C ++

数组在整个生命周期中始终具有恒定数量的元素。无法添加或删除元素。

  

我想也许有某种方法可以改变我指的数组头指针:

arr = arr + 1 ;

像这样使用“头”指针是唯一的O(1)“删除”方法(尽管也可以使用基于索引的类似解决方案),或者假装已从数组中删除了元素。

但是,您不应更改arr本身,因为您需要原始值来释放分配。

  

但这不能解决问题,程序仍然将arr而不是存储块,数组头视为第二个单元格

目前还不清楚为什么您认为问题没有解决。

本文链接:https://www.f2er.com/3164759.html

大家都在问