If it's the arg char* that you want to manipulate then you have to pass in the address of the pointer; C is pass by value only, so when you want to modify the thing passed in then you have to pass its address in. Do you mean you want to change the pointer to the string or the string pointed to?

What if the pointer passed in is NULL?

Seems odd you aren't "allowed" to return a value from a function. Why is that? What is the function supposed to do? I'm sure the people preventing you returning a value won't want you to modify argv[] either; this doesn't make a lot of sense. So maybe if you can outline the purpose of the function that would clarify why you want to do what you want to.