﻿# V514\. Potential logical error\. Size of a pointer is divided by another value\.

The analyzer found a potential error related to division of the pointer's size by some value\. Division of the pointer's size is rather a strange operation since it has no practical sense and most likely indicates an error or misprint in code\.

Consider an example:

```cpp
const size_t StrLen = 16;
LPTSTR dest = new TCHAR[StrLen];
TCHAR src[StrLen] = _T("string for V514");
_tcsncpy(dest, src, sizeof(dest)/sizeof(dest[0]));
```

In the "sizeof\(dest\)/sizeof\(dest\[0\]\)" expression, the pointer's size is divided by the size of the element the pointer refers to\. As a result, we might get different numbers of copied bytes depending on sizes of the pointer and TCHAR type \- but never the number the programmer expected\.

Taking into account that the \_tcsncpy function is unsafe in itself, correct and safer code may look in the following way:

```cpp
const size_t StrLen = 16;
LPTSTR dest = new TCHAR[StrLen];
TCHAR src[StrLen] = _T("string for V514");
_tcsncpy_s(dest, StrLen, src, StrLen);
```