Unable to understand a quite different address

Here is a program to compute powerset of a set, in C. It is a modification of the rosetta code for the same. The reason for modification, is to further build upon it, the recursive powerset code, for which need to further store the struct nodes, in an array.
To further the understanding of the working of the rosetta-code, have run it on the C page, of pythontutor.com website.
The fifth call of the powerset(), shows a quite different address, than the address shown of the ‘struct node’, in the third call of the same function. That (i.e., the one created in the third call) ‘struct node’ should actually display in the fifth call.
The code is being run on pythontutor.com site’s C page. The two screenshots attached herewith show the AR (activation records) and GVs (global variables) on the fifth call.

#include <stdio.h>
int count=0;
struct node {
    char *s;
    struct node* prev;
};
char *arrv[] = {"a", "b", "c", '\0'};
int arrc = sizeof(arrv)/sizeof(arrv[0]) - 1;
int call_no =0;
void powerset(char **v, int n, struct node *up, int call_no, int val)
{
    struct node me;     
    if (val){
        printf("---(1)char**v:%s, int n:%d, node*up:%ld, call_no:%d, val:%d\n", *v,n,up,call_no,val);                                      
    }
    else{
       printf("---(1)char**v:%s, int n:%d, node*me:%ld, call_no:%d, val:%d\n", *v,n,up,call_no,val);                                      
    }  
    if (!n) {
        printf("  count> %d", ++count);
        putchar('[');
        while (up) {
            printf("%s", up->s);
            up = up->prev;
            if (val){
               printf(" (2)node*up: %ld", up); 
            }
            else{
               printf(" (2)node*me: %ld", up); 
            }
        }
        puts("]");
    } else {
        me.s = *v;
        me.prev = up; 
        printf(" (3)me:%ld", me);   
        powerset(v + 1, n - 1, up, ++call_no, 1);
        powerset(v + 1, n - 1, &me, ++call_no, 0);
    }
}
    
int main(int argc, char **argv)
{
    powerset(arrv, arrc, 0, ++call_no,1);
    return 0;
}

The output on the fifth call is given below

---(1)char**v:a, int n:3, node*up:0, call_no:1, val:1 
 (3)me:4196392
---(1)char**v:b, int n:2, node*up:0, call_no:2, val:1 
 (3)me:4196394
---(1)char**v:c, int n:1, node*up:0, call_no:3, val:1 
 (3)me:4196396
---(1)char**v:(null), int n:0, node*up:0, call_no:4, val:1  count> 1[]
---(1)char**v:(null), int n:0, node*me:68702702384, call_no:5, val:0  count> 2[

To elaborate further:
My issue is that the address for the fifth call (of the powerset()) , for the struct node, is quite different.



The four addresses, for the first 4 calls of the powerset(), are:
4196392, 4196394, 4196396, N.A. (as struct’s fields have not been assigned).
The fifth call should have the value for ‘up’ as the address of the ‘struct node’ created on the AR, of the third call.
But, this address is very different, as it is: 68702702384, rather than 4196396.