﻿# V580\. Suspicious explicit type casting\. Consider inspecting the expression\.

Анализатор обнаружил подозрительное явное приведение типа\. Это может быть ошибкой или потенциальной ошибкой\. 

Рассмотрим пример:

```cpp
DWORD errCode = 0;
void* dwErrParams[MAX_MESSAGE_PARAMS];
dwErrParams[0] = *((void**)&errCode);
```

Код содержит 64\-битную ошибку\. Тип 'DWORD' превращается в тип 'void \*' \. Этот код некорректно работает в 64\-битных системах, где размер указателя не совпадает с размером типа DWORD\. Корректный вариант:

```cpp
DWORD_PTR errCode = 0;
void* dwErrParams[MAX_MESSAGE_PARAMS];
dwErrParams[0] = (void *)errCode;
```