I have a bit stupid question about program in C. My compiler says me: warning: comparison between pointer and integer. I really don\'t know why. I only want to writ
The biggest problem with that code is that, depending on your implementation, it might compile without error.
The problem, as others have said, is that NULL is intended to represent a null pointer value, not a null character value. Use '\0' to denote a null character. (Or you can use 0, which is equivalent, but '\0' expresses the intent more clearly.)
NULL is a macro that expands to an implementation-defined null pointer constant. A null pointer constant can be either an integer constant expression with the value 0, or such an expression cast to void*. Which means that NULL may be defined either as 0 or as ((void*)0) (among other variations).
Apparently your implementation defines it as something like ((void*)0), which is why you got the warning message. (It could, and IMHO should, have been treated as a fatal error).
So never try to use NULL other than as a null pointer constant -- and don't count on the compiler to warn you if you misuse it.