Our website uses cookies to enhance your browsing experience.
Accept
to the top
>
>
>
V769. The pointer in the expression...
menu mobile close menu
Additional information
toggle menu Contents

V769. The pointer in the expression equals nullptr. The resulting value is meaningless and should not be used.

Oct 17 2016

The analyzer detected a strange operation involving a null pointer and making the resulting pointer meaningless. Such behavior indicates a logic error.

Consider the following example:

void foo(bool isEmpty, char *str)
{
  char *begin = isEmpty ? str : nullptr;
  char *end = begin + strlen(str);
  ....
}

If the begin pointer equals nullptr, the nullptr + len expression does not make sense: you cannot use it anyway. Perhaps the variable will not be used anymore. In that case, the code should be refactored so that this operation is never applied to a null pointer, as the programmer who will be dealing with the code may forget that the variable should not be used and attempt to access the data pointed to by the incorrect pointer, which will lead to errors.

Fixed code:

void foo(bool isEmpty, char *str)
{
  char *begin = isEmpty ? str : nullptr;
  if (begin != nullptr)
  {
    char *end = begin + strlen(str);
    ....
  }
  ....
}

This diagnostic is classified as:

You can look at examples of errors detected by the V769 diagnostic.

Take
a chance!

Take a chance —
spin a wheel.

Prize circle Prize circle Outer ring

Congrats! You've won a 30-day trial license!

You tricked the system, well done! Get a 30-day trial as your prize!