Q:

Does return an address ensures non-NULL return value?

In a function if I am returning an address of some primitive type of object. Can I be assured that it will never be a NULL value?
Do I need to check for NULL with a statement like    
if (r_value) { //do something }  
else { //ERROR }  

?  

A:

The address of an object will never be null.
Be careful you're not returning a pointer to a non-static local variable. That will be destroyed when the function returns, so the pointer will be invalid; but it won't be null, and there'll be no way to tell that it's no longer valid.
In C++, I'd return a reference rather than a pointer to make it clear that it won't be null. That's not an option in C of course; I don't know which of the two tagged languages you're asking about.

A:

The address of an existing object is guaranteed to be not NULL. So if you use such an address there is no point for NULL checking.

