☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

用 delete 释放不完整类型的对象,但在对象完整类型声明中有 non-trivial 析构函数

C++-Undefined-Behavior-41
目录 › next › previous

示例:

struct T;

void foo(T* p) {
    delete p;       // Undefined behavior
}

struct T {
   ~T();            // Non-trivial destructor
};

例中 delete 作用于不完整类型的指针 p,会导致未定义的行为。

依据

ISO/IEC 14882:2003 5.3.5(5)-undefined ISO/IEC 14882:2011 5.3.5(5)-undefined

规则

ID_deleteIncompleteType
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.