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

不可释放非动态分配的内存

2.16 ID_illDealloc
目录 › next › previous

释放非动态分配的内存会导致标准未定义的行为。

本规则是 ID_incompatibleDealloc 的特化。

示例:

void bar() {
    int i;
    ....
    free(&i);   // Non-compliant, undefined behavior
}

在栈上分配的内存空间不需要显式回收,否则会导致严重的运行时错误。

相关

ID_incompatibleDealloc

依据

ISO/IEC 9899:1999 7.20.3.2(2)-undefined ISO/IEC 9899:2011 7.22.3.3(2)-undefined ISO/IEC 14882:2003 5.3.5(2)-undefined ISO/IEC 14882:2011 5.3.5(2)-undefined

参考

MISRA C 2012 22.2 SEI CERT MEM34-C
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.