stack and heap