>
>
>
V1038. It is suspicious that a char or …


V1038. It is suspicious that a char or string literal is added to a pointer.

The analyzer has detected an operation of adding a pointer to a char literal. This is likely an error.

In the following example, the programmer wants to append a character to a string of type 'const char*':

const char* Foo()
{
  return "Hello world!\n";
}

int main()
{
  const char* bar = 'g' + Foo();
  printf("%s", bar);
  return 0;
}

Executing this code will result in adding the numerical value of the 'g' character to the pointer, potentially resulting in going beyond the bounds of the string. To fix this error, you should use a special class, 'std::string', if possible, or memory handling operations:

const char* Foo()
{
  return "Hello world!\n";
}

int main()
{
  std::string bar = 'g' + std::string(Foo());
  printf("%s", bar.c_str());
  return 0;
}

This diagnostic is classified as: