c++中new不带括号,delete带括号,这可能吗?
Is this possible that new without bracket but delete with bracket in C++
我知道在c++中创建数组使用new []然后删除这个数组使用delete []
我想知道我是否创建了一个对象然后用delete []
删除它Test * a = new Test;
delete [] a;
嗯…它的工作原理……但它安全吗?我应该使用没有括号的delete吗?
不行。行为最多是未定义的。
编辑:信息链接受欢迎添加:http://web.archive.org/web/20080703153358/http://taossa.com/index.php/2007/01/03/attacking-delete-and-delete-in-c
这是未定义的行为,最好避免。
IIRC MSVC处理(或至少用来处理)新数组和新数组是相同的,这是(或曾经)一个令人愉快的迁移头痛的来源;-)
相关文章:
- g++用户定义的动态链接库上的全局new和delete运算符
- 体系结构x86_64的未定义符号:std:terminate(),typeinfo,运算符delete[],运算符new
- 为什么 std::vector 使用 std::分配器而不是运算符 new 和 delete?
- 重载 new 和 delete 会导致 valgrind 错误
- 基类指针:在哪里使用 new 和 delete
- C++:为什么可以在没有事先使用 new 的情况下在指向结构的指针上使用 delete?
- 重载运算符 new 和运算符 delete 带有三个参数
- 如果我为一个类编写new和delete运算符,我是否必须编写它们的所有重载
- new[] / delete[] 并在C++中抛出构造函数/析构函数
- QQuickView new-delete-type-mismatch
- 使用重载的 new 和 delete 运算符跟踪已用内存
- 创建 myNew/myDelete 以替换 new/new[]/delete/delete[]
- 为多线程环境包装 c++ new/delete 的安全/好方法
- C++ VS:多 DLL 解决方案中的'new'和'delete'覆盖
- 如何使用 new 和 delete 与 OpenGL 的缓冲区对象一起使用?
- c++ 运算符 new[]/delete [] 是否调用运算符 new/delete?
- 继承类上的运算符new和delete.操作员删除未执行
- 在不同的编译器版本中调用new[]和delete[]
- `delete []`on`int*````new'''给出了malloc错误
- C++内存分配失败(使用 new & delete)