Option (B) 1 and 3 are true but 2 is false.
2 is FALSE because Size of heap and stack both are limited by the available main memory. Usually the OS also restricts the maximum memory a process can use.
1. is TRUE because stack facilitates creation of memory for function calls and free them on function return - just a change of stack pointer is needed.
3. is TRUE because the stack variables are cleared on function return. Usually persistent data structures refer to those which survive program exits but even for static variables which should live until program finishes, stack cannot be used.