Let's not compare a function to anything.
Pretty sure calling a function with wrong number of arguments is undefined behaviour.
NULL is a pointer, 0 is not. Only one of them should be put into an unsigned int.
Fix weird cast of integer to pointer. (Is that function needed at all?)
Fix warning where the compiler knows very well what we mean.