V731. The variable of char type is compared with pointer to string.


The analyzer has detected a comparison of a char variable with a pointer to a string. The reason why the variable is used that way is in using double quotes (") instead of single quotes (') by mistake.

Here's an example for this error pattern:

char ch = 'd';
....
if(ch == "\n")
....

The inattentive author of this code wanted to compare the 'ch' variable with a new string's character but used quotes of a wrong type. This resulted in the value of the 'ch' variable being compared to the "\n" string's address. Code like that can compile and execute well in C but usually makes no sense. The correct version of the code sample above should use single quotes instead of double ones:


char ch = 'd';
....
if(ch == '\n')
  ....

The same kind of mistake can be also made when initializing or assigning a value to a variable, causing this variable to store the least significant byte of the address of the string being assigned.

char ch = "d";

The correct version of the code should use single quotes.

char ch = 'd';

According to Common Weakness Enumeration, potential errors found by using this diagnostic are classified as CWE-665.


Bugs Found

Checked Projects
334
Collected Errors
12 668