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

void (*signal(int signum, void (*sighandler)(int)))(int);

static int i;

void catch_segv(int sig) {
  printf("Caught segv: %d\n", sig);
  printf("i = %d\n", i);
}

int main(int argc, char **argv) {
  char *s = (char *) malloc (1);
  i = 0;

  signal(SIGSEGV, catch_segv);

  while (1) {
    s[i] = 'a';
    i++;
  }
}





