I am getting a warning when I iterate through the character pointer and check when the pointer reaches the null terminator.
const char* message = "hi"; //I then loop through the message and I get an error in the below if statement. if (*message == "\0") { ...//do something }
The error I am getting is:
warning: comparison between pointer and integer ('int' and 'char *')
I thought that the *
in front of message
dereferences message, so I get the value of where message points to? I do not want to use the library function strcmp
by the way.
The warning means that you are trying to compare a character with a string, hence the "comparison between pointer (string) and integer (character)" message.
But seriously, you should never, ever, ever, ever, ever compare a pointer with an integer. They are not the same thing. In languages like C and C++, the size of a pointer and the size of an int are never guaranteed to be the same.
EOF is a macro for a negative integer constant. fp is a pointer to FILE . you compare a pointer with an integer of a non-zero value, which isn't permissible.
It should be
if (*message == '\0')
In C, simple quotes delimit a single character whereas double quotes are for strings.
This: "\0"
is a string, not a character. A character uses single quotes, like '\0'
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With