What you probably read "you need a l-value to accept the return of a function call"
For eg. in your code.
you cannot do
5 = fun();
because 5 is not an l-value.
However both of these are fine
int i;
i = fun(); // i is an l-value
or
fun(); // ignore the return value
Also, you need
char * str = "hello"; // you cannot allocate a string to a single char
And void main()
is non-standard.
You need
int main()