책 예제를 보면

enum List {

Cons(i32, List),

Nil,

}


let list = Cons(1, Cons(2, Cons(3, Nil)));


이렇게 재귀적으로 가면 컴파일 시점에 어느정도의 메모리를 할당해야될지 모르니까

포인터인 Box를 쓰라는건데 이해가 안가는게


포인터를 쓴다해도 결국 재귀적으로 컴파일시점에 언제끝날지 모르는데 

즉, 포인터가 4byte라고 치고 할당해야하는 메모리가 4byte * x 에서 이 x 값을 컴파일타임에 모르는데 왜 box를 쓰면 해결된다는건지 이해가 안감