Почему обработчик сигнала переходит в бесконечный цикл? - SIGSEGV

Есть идеи, почему обработчик сигнала переходит в бесконечный цикл?

Вот код. Пожалуйста, помогите мне.

enter code here
 9 void SIGSEGV_handler(int signal)
10 {
11  printf("Segmentation fault caught....\n");
12  printf("Value of instance variable: i = %d\n\n", i);
13 } 
16 
17 int main()
18 {
19  char *mallocPtr, *callocPtr, *reallocPtr, *memalignPtr, *vallocPtr;
20  struct sigaction sa;
21 
22  sa.sa_handler=SIGSEGV_handler;
23  sigaction(SIGSEGV, &sa, NULL);
24 
37 
38  printf("The segmentation fault handler will be entered for i = 3, 4, 5 and 6\n");
39 
40 
41  for(i=0; i<7; i++)
42   {
43    printf("i = %d\n",i);
44 
45    mallocPtr=(char*)malloc(3);
46    printf("Malloc address : %x\n",mallocPtr);
47    strcpy(mallocPtr, "Hhvhgvghsvxhvshxv");
48    puts(mallocPtr);
7
задан kingsmasher1 8 August 2011 в 11:18
поделиться