Skip to content

Assignment Makes Pointer From Integer Without A Cast Malloco

As others already noted, in one case you are attempting to return (which is a value in this context - a pointer) from a function that is declared to return a (which is an integer). In another case you do the reverse: you are assigning a return value to a pointer. This is what triggers the warnings. You certainly need to declare your return values as , not as .

Note BTW that these assignments are in fact constraint violations from the language point of view (i.e. they are "errors"), since it is illegal to mix pointers and integers in C like that (aside from integral constant zero). Your compiler is simply too forgiving in this regard and reports these violations as mere "warnings".

What I also wanted to note is that in several answers you might notice the relatively strange suggestion to return from your functions, since you are modifying the string in-place. While it will certainly work (since you indeed are modifying the string in-place), there's nothing really wrong with returning the same value from the function. In fact, it is a rather standard practice in C language where applicable (take a look at the standard functions like and others), since it enables "chaining" of function calls if you choose to use it, and costs virtually nothing if you don't use "chaining".

That said, the assignments in your implementation of look complete superfluous to me (even though they won't break anything). I'd either get rid of them

or use "chaining" and do

(this is when your return would come handy). Just keep in mind that such "chained" function calls are sometimes difficult to debug with a step-by-step debugger.

As an additional, unrealted note, I'd say that implementing a string comparison function in such a destructive fashion (it modifies the input strings) might not be the best idea. A non-destructive function would be of a much greater value in my opinion. Instead of performing as explicit conversion of the input strings to a lower case, it is usually a better idea to implement a custom char-by-char case-insensitive string comparison function and use it instead of calling the standard .

Обхватил ее своими ручищами. Да еще хвастался, что снял ее на весь уик-энд за три сотни долларов. Это он должен был упасть замертво, а не бедолага азиат.