c - pointer changes value without being passed as argument -
following code snippet code involving transformations on binary tree.
void fixprevptr(struct node *root) { static struct node *pre = null; if (root != null) { fixprevptr(root->left); root->left = pre; pre = root; fixprevptr(root->right); } } here 'pre' initialised in every function null. when function entered 'if' clause , root->left=pre, executed, pre being assigned not null. somehow changed function fixprevptr(root->left).
my question how changed without being passed function.
thanks in advance.
pre static keeps it's value call call. fixprevptr() recursive (calls itself) change pre "sticks".
Comments
Post a Comment