Есть такой код:
#include <stdio.h>
#include <string.h>
typedef struct {
char text[256];
int type;
} Token;
Token tok_get() {
Token t_tok;
printf("Pointer in function tok_get %x\n", &t_tok);
return t_tok;
}
int main(void) {
Token t_main;
printf("Pointer in function main %x\n", &t_main);
t_main = tok_get();
printf("Pointer after assign %x\n", &t_main);
return 0;
}

П.С. Давайте вариант без оптимизаций рассмотрим.