如何删除动态数组的特定索引
How to delete specific index of dynamic array?
假设我不想使用向量和使用动态数组(只是一个学习目的)。从我分配的动态数组中,我想删除特定的索引。
int * array = new int[10];
delete &array[3];
当我尝试这样做时,我得到SIGSEGV,分段错误。
我如何删除特定的索引(比如索引3,我知道它的连续内存,它会创建一个洞,但只是为了学习的目的),就像我试图正确地做上面,为什么我得到分割错误,如果这是我的内存?
不能删除数组中的元素。你只能删除你新建的。要从数组中删除元素,需要将上面的元素向下复制一个槽。
你不能。数组被存储为连续的内存位置。
你必须有一个指针数组才能delete
数组中的单个元素
您可以将以下所有元素移回一个位置,但是仅使用标准工具无法重新分配new
ed内存。
或者你可以分配一个新的数组,并复制你想要的所有元素。
但最简单的方法是使用std::vector
和std::vector::erase
。
相关文章:
- 数组索引的值没有增加
- 并行用于C++17中数组索引范围内的循环
- 数组索引重载错误
- 通过指针与数组引用扩展数组索引序列
- SIGSEGV, 分段错误. 而 printf() 数组索引的值
- 缓冲区溢出 - 数组索引越界(严重)
- 为什么C++数组索引值是有符号的,而不是围绕size_t类型构建的(或者我错了)
- 查找下一个具有真值C++的数组索引
- 在编译时自动生成用于稀疏数组索引的switch语句
- 在数组索引上引发异常
- C++ 将二维数组索引与条件语句中的函数值进行比较
- 平衡数组索引,同时从左和右对数组求和
- 为什么C ,Devstudio,数组索引工作
- 如何对同一数组索引下的结构成员进行排序?
- 我想返回数组索引,而不是数组值
- C++相当于 Python 的:用于数组索引
- 分段错误:为什么这里的数组索引越界了
- 数组索引在地图上不是整数
- 根据用户输入的每个字母添加到数组索引
- C 数组索引