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

void recu();

int main(){

   recu();

   return 0;

}

void recu(){
    int *a = (int *)malloc(sizeof(int) *100) ;
    recu();
}


1. 위의 코드는 어떠한 문제점이 있는가? 실행시킬 경우 발생할 수 있는 문제를 적으시오.

2. OS차원에서 위의 프로그램의 실행을 허용해야 하는가?  OS가 지원해야하는 방법을 쓰시오.

3. 저러한 프로그램으로부터 시스템을 보호할 더좋은 방법이 있다면 그것이 무엇인가? 자신의 생각을 쓰시오 .



1번부터 저런 변태문제 나와서 씨발 ..



저거 뒤에나오는 6문제 다 개처럼품


저거 리커시브 호출 하는 함수의 활성레코드에는 malloc한 포인터만 저장되고 실제 메모리 할당은 hip 영역에 되지 않나 ? 그래서 시스템스택이

다 쌓여서 그런게 아니라 ,  대충  저때 오류 발생은 리커시브 때문이 아니라 hip영역에 더이상 메모리 할당 할수 없을때 발생한다 적고 햇는데


0000000000000000
일단 리커시브 호출 할땐 반드시 그 인자가 감소해서 탈출조건이 있어야한다. 그러나 오류는 시스템스택오버플로우가 아니라 malloc 요청 했을때

OS가 더이상 메모리를 줄 수 없을때 발생한다

적엇는데 맞나 ?