When making a function call in Linux (or OS X for that matter), can the callee modify the values of the arguments on the stack? I was under the assumption that since the ca
In standard C, the callee can modify the values of its arguments all it wants, but the caller will never see the changes.
What may be confusing is that if one passes a POINTER to a value, then the callee can change that value by dereferencing the pointer, but if the callee actually changes the pointer itself the caller will not see that change.
A small nit: the C standard does not require that the implementation even HAVE a stack.