このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MISRA C:2012 Rule 22.1
All resources obtained dynamically by means of Standard Library functions shall be explicitly released
説明
ルール定義
All resources obtained dynamically by means of Standard Library functions shall be explicitly released 1 .
根拠
リソースは、いったんそれを使用したらシステムに返すべきものです。例には、動的に割り当てられたメモリとファイル記述子が含まれています。
リソースをできるだけ早く、明示的に解放しないと、リソースが使い果たされることでエラーが発生する可能性があります。
Polyspace 実装
チェッカーは以下の関数の使用に対してフラグを設定します。
メモリが解放されていない場合のメモリ割り当て関数 (
malloc
、aligned_alloc
など)。ファイルが閉じられていない場合のファイルを開く関数 (
fopen
など)。
このルールは Bug Finder 解析でのみチェックできます。
トラブルシューティング
ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。
例
チェック情報
グループ: Resources |
カテゴリ: 必要 |
AGC カテゴリ: 必要 |
バージョン履歴
R2015b で導入
参考
MISRA C:2012 Dir
4.13
| MISRA C:2012 Rule
21.3
| MISRA C:2012 Rule
21.6
| Resource
leak
| MISRA C:2012 のチェック (-misra3)
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.