//stacktest.c:

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

void func(size_t i) {
    volatile char x[1024*1024];
    x[0] = 0;
    x[sizeof(x)-1] = 0;
    printf("i=%zu, x=%p, *x=%u\n", i, x, (unsigned)*x);
    if (i < 1024)
        func(i + 1);
}

int main(void) {
    func(0);

    return EXIT_SUCCESS;
}

//ll

/* Output:
$ ./stacktest 
i=0, x=0x7ffca3f1c450, *x=0
i=1, x=0x7ffca401c450, *x=0
i=2, x=0x7ffca411c450, *x=0
i=3, x=0x7ffca3c1c430, *x=0
i=4, x=0x7ffca3d1c430, *x=0
i=5, x=0x7ffca3e1c430, *x=0
Segmentation fault
*/