Majjcom 2022-06-18 23:16 采纳率: 33.3%
浏览 17

关于C++指针和内存管理的问题

关于C++指针和内存管理的问题

class A
{
public:
    int a = 1;
};

class B : public A
{
public:
    int b = 2;
};

B* bi = new B;
A* ai = (A*)bi;
delete ai;

请问这样处理会不会有内存未释放的问题

  • 写回答

1条回答 默认 最新

  • 没事干写博客玩 2022-06-19 04:36
    关注

    不会,你在类内没有任何申请堆内存的地方, delete本质还是编译器生成的operator delete,如果你在子类里面有new 的操作,并且没有虚析构函数,才会造成内存泄露

    评论

报告相同问题?

问题事件

  • 创建了问题 6月18日

悬赏问题

  • ¥20 20CrMnMo的高温变形抗力
  • ¥15 RTX3.6 5565驱动中断报错
  • ¥50 带防重放token(Antireplay-Token)的网站怎么用Python发送请求
  • ¥15 visa版本没问题,串口调试助手调试串口正常使用,但是labview刷新不出来
  • ¥15 java MQTT SSL证书
  • ¥20 求一个手机号或者Wxid转微信号的工具
  • ¥20 msconfig开启安全引导后重启电脑黑屏
  • ¥15 对email表单做了一般邮箱正则校验,现在需要额外输入为hotmail或outlook、gmail时做特定邮箱校验,不符合提示出来。并且保证不影响其他正确的邮箱格式通过校验,通过不会提示。
  • ¥20 Win11,bitblocker密钥恢复失败
  • ¥15 stm32 cubemx配置sdram,初始化后无法读写sdram