﻿# V2511\. MISRA\. Memory allocation and deallocation functions should not be used\.

Данное диагностическое правило основано на руководстве [MISRA](https://www.misra.org.uk/) \(Motor Industry Software Reliability Association\) по разработке программного обеспечения\.

Анализатор выдаст предупреждение, если встретит использование функций и операторов выделения \\ освобождения динамической памяти, таких как 'malloc'; 'realloc'; 'calloc'; 'free'; 'new'; 'delete'\.

Функции работы с динамической памятью являются потенциальным источником проблем, так как их неправильное использование может привести к утечкам памяти, неопределённому поведению и прочим ошибкам\. Более того – это может стать причиной возникновения уязвимости в приложении\.

Пример кода, на который анализатор выдаст предупреждение:

```cpp
int* imalloc(size_t cnt)
{
  return (int*)malloc(cnt * sizeof(int));
}
```

Для C анализатор также выдаст предупреждение, если обнаружит определение макроса с одним из соответствующих имён\.