c++ - 我应该释放一个 0 大小的动态数组吗?
问题描述
您好,我有一个简单的例子:由于 C++ 允许类型为 0 大小的动态数组,T
那么我该如何释放它?
a = new int[0];
delete[] a;// UB?
正如您在上面看到的,C++ 编译器现在不涉及动态数组大小,0
因此代码可以正常工作。我也知道这个数组a
作为过去结束指针工作,因此它既不能取消引用也不能增加/减少。
我不知道在这种情况下,操作员的幕后会发生什么
new
?它是否分配内存?还是失败了?如果我不使用
delete[] a;
它释放这个内存是内存泄漏吗?可以像这样分配给它:
a = new int[10];
?
解决方案
推荐阅读
- cloud - 是否有任何安全问题或不发布 Web 应用程序中使用的代码的理由
- python-3.x - 如何在 django_requestlogging 中获取用户名
- c - 如何从整数表示的日期中获取年龄
- r - 如何在 R 中使用 sf 操作 shapefile 多边形的几何形状
- discord - 如何在将特定角色分配给例如 20 人时自动锁定频道
- python - 我的问题是关于 python 中的字符串切片
- flutter - Flutter Web 滚轮在 Firefox 上缓慢滚动
- python - txt 文件排序(每行中的键:值) - '\n' 的问题
- wordpress - 在 docker 容器中自定义 Wordpress (WP) 主题
- angular - 单元测试 Angular 11 服务存根问题