I want to write each char on the screen:
int i = 0;
char str[50] = {'s', 'a', 'm', 'p','l','e'}; //only for test
while (str[i] != NULL) {
putchar(str[i]);
i++;
}
But my compiler says:
warning: comparison between pointer and integer.
Why?
NULL
is a pointer, and str[i]
is the i
-th char of the str
array. char
is an integer type, and as you compare them, you get the warning.
I guess you want to check for end of string, that would you do with a check for the char with the value 0 (end of string), that is '\0'
.
But: this won't help you as you define it just as an array of chars and not as a string, and you didn't define the terminating 0 in the char array (you get just lucky that it is implicit there).