c++ - 布尔动态内存分配不能被删除
问题描述
include <iostream>
int main()
{
bool a=new bool;
delete a;
return 0;
}
我尝试删除布尔 malloc,但到目前为止,它一直给我一个错误,即 bool 类型表达式不能被删除
解决方案
你不能执行delete
on bool
,你应该delete
用指针代替。
bool* a=new bool;
delete a;
在您的代码中,a
是一个类型为 的变量bool
,它是从创建的指针初始化的new bool
,它可以bool
隐式转换为;false
对于空指针,true
对于非空指针。
推荐阅读
- java - 片段不显示任何内容
- python - 条件匹配时添加一行?
- javascript - 如何等待 AWS 假设角色,然后继续进行模块定义
- c++ - MDI 面向对象的方法,从 MDICREATESTRUCT 检索此指针
- drupal-7 - Drupal 7面包屑未显示
- nestjs - 使用解析器类继承时如何注入服务
- django - 如果使用 django-import-export 已经存在 id,如何在导入 csv 后更新 django 模型?
- eclipse - Eclipse 和 gsl 库 - 找不到 -lgsl_sf_bessel
- python - 将 pandas groupby 结果扩展到初始数据框
- google-sheets - 如何在谷歌表格查询公式中使用绝对引用或按列名查询多个表格?