﻿# V202\. Explicit conversion from memsize type to 32\-bit integer type\.


> Это правило входит в группу "Диагностика 64\\\-битных ошибок"\\\. Разработка правил этой группы больше не ведётся, и в будущем они могут быть отключены\\\. Если вы используете эти правила, \[свяжитесь с нашей поддержкой\]\(https://pvs\-studio\.ru/ru/about\-feedback/\) — мы поможем найти замену или предложим альтернативное решение\\\.

Оно информирует о наличии явного приведения целочисленного memsize типа к 32\-битному типу, что может маскировать одну из следующих ошибок: V103, V107, V110\. Вы можете обратиться к приведенному списку предупреждений, чтобы выявить причину появления диагностирующего сообщения V202\. 

Ранее предупреждение V202 распространялось и на приведение указателя к 32\-битному целочисленному типу\. Такие приведения весьма опасны\. Поэтому они были выделены в отдельное диагностическое правило [V205](https://pvs-studio.ru/ru/docs/warnings/v205/)\.

Учтите, что, скорее всего, большинство предупреждений этого типа будет выдано на корректный код\. Приведем несколько примеров корректного и некорректного кода, на который будет выдано данное предупреждение\.

Примеры некорректного кода\.

```cpp
size_t n;
...
for (unsigned i = 0; i != (unsigned)n; ++i) {   //V202
  ...
}

UINT_PTR width, height, depth;
...
UINT arraySize = UINT(width * height * depth);   //V202
```



Примеры корректного кода\.

```cpp
const unsigned bits =
  unsigned(sizeof(object) * 8); //V202

extern size_t nPane;
extern HICON hIcon;
 BOOL result =
  SetIcon(static_cast<int>(nPane), hIcon); //V202
```

Дополнительные материалы по данной теме:

1. 64\-битные уроки\. Урок 15\. Паттерн 7\. [Упаковка указателей](https://pvs-studio.ru/ru/blog/lessons/0015/)\.