﻿# V620\. Expression of sizeof\(T\)\*N kind is summed up with pointer to T type\. Consider inspecting the expression\.

The analyzer has detected that a variable of the pointer type is added to an expression containing the sizeof\(T\) operator\. Using the operator in such a way might indicate incorrect address arithmetic\.

Consider a simplest example:

```cpp
int *p;
size_t N = 5;
...  
p = p + sizeof(int)*N;
```

This use is incorrect\. It is expected that we will move by N items in the data structure\. Instead, a 20\-item shift occurs, as sizeof\(int\) value is 4 in 32\-bit programs\. As a result, we'll get the following: "p \= p \+ 20;"\. Perhaps there is a misprint or other mistake\. This is the correct code:

```cpp
int *p;
size_t N = 5;
...  
p = p + N;
```

Note\. The analyzer considers the code correct if the char type is being handled in it\. Consider a sample where the analyzer won't generate the warning:

```cpp
char *c;
size_t N = 5;
...  
c = c + sizeof(float)*N;
```