主要内容

MISRA C++:2008 Rule 18-4-1

Dynamic heap memory allocation shall not be used

描述

规则定义

Dynamic heap memory allocation shall not be used. 1

理由

动态内存分配使用堆内存,这可能导致内存泄漏、数据不一致、内存耗尽以及非确定性行为等问题。

Polyspace 实现

检查项会标记对 malloccallocreallocfree 函数的使用,以及 newdelete 运算符的非放置版本的使用。

检查项还会标记对 alloca 函数的使用。虽然使用 alloca 函数不会发生内存泄漏,但与动态内存分配相关的其他问题仍可能发生。

故障排除

如果您预期会出现违规,而 Polyspace® 未报告该违规,请参阅诊断为何编码规范违规未按预期显示

检查信息

组:语言支持库
类别:必需

版本历史记录

在 R2013b 中推出


1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.

The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:

  • MISRA C:2004

  • MISRA C:2012

  • MISRA C:2023

  • MISRA C++:2008

  • MISRA C++:2023

MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.