删除一个指针c++
Delete a pointer c++
我有一个c++程序,如果用户输入更多元素,它的一部分指针的大小就会增加。此指针的类型与结构Entry相关,增加指针大小的函数是
Entry *size_increase(Entry *neuu, int *size){
*size = *size+10;
Entry *new_neu = new Entry[*size];
for (int i=0; i<*size; ++i) {
new_neu[i]=neuu[i];
}
return new_neu;
}
指针neuu是要增加的指针,大小为其初始大小。在这个函数结束时,我想删除输入指针neuu以释放内存。
问题是:如果我有这个序列
delete neuu;
return new_neu;
编译器在接受两个用户输入后停止,并打印错误
对象0x1002042b8出错:释放的指针未分配
那么我该如何删除指针呢?
编辑:一些用户询问neuu最初是如何分配的。最初我有
Entry *neu = new Entry[1];
每当用户试图输入第二项时,一个函数被称为
neu = size_increase(neu,size);
这两者都发生在主函数内部。
因为neuu
是用new[]
创建的,所以应该使用delete[]
而不是delete
。
相关文章:
- 修改函数中的指针(将另一个指针作为参数传递)
- 将指针分配给另一个指针时会发生什么情况?
- C++将一个指针分配给另一个指针时执行的类型检查
- 更改一个指针后更改乘法对象
- 从另一个指针指向函数的指针
- 有没有办法在同名类 (c++) 中为对象分配一个指针变量
- 为什么通过定义另一个指针单元格,整个代码停止工作?
- C:试图将指针值复制到另一个指针中,得到可修改的左值错误
- C++ typedef 函数指针,并在一个语句中声明一个指针
- 一个对象的两个指针.删除了一个指针,对象仍然存在
- 如何获得GUID编码器,如果我在IMFTransform上有一个指针?
- 我不明白我的错误需要返回一个指针数组
- 使用 SFINAE 测试是否可以将一个指针类型static_cast到另一个指针类型
- 将指针分配给另一个指针时会发生什么情况?
- 如何保存指针地址,以便另一个指针可以继续处理它
- 为什么 std::span 是一个指针 + 大小而不是两个迭代器
- 类的成员应该是一个指针
- 隐式指针变量,在自动定义中具有另一个指针变量
- 利用双重链接列表中的下一个指针
- 你能把一个指针投射到数组中吗?