Final answer:
Primitive types are typically allocated memory on the stack in programming languages, which is an area for temporary variables that get removed after the function ends, unlike objects that are allocated on the heap.
Step-by-step explanation:
In programming languages such as Java and C#, primitive types are typically allocated memory on the stack. The stack is an area of memory that stores temporary variables created by a function. These variables are only accessible within the function they were created in and are removed once the function has finished execution. The allocation on the stack is automatic and the space is reclaimed when the function that created them returns.
On the other hand, the heap is used for dynamic memory allocation where the life of the variable is not necessarily tied to the function calls and the size of the memory needed might not be known at compile time. Objects in object-oriented languages are generally allocated on the heap and the memory management is either manual, or, in languages like Java and C#, handled by a garbage collector.
In conclusion, primitive types are usually allocated space on the stack, and not on the heap. Thus, the correct option for the question is 'a. Stack'.