Question: Define a nested structure to represent a university where a `University` structure contains an array of `Department` structures, and each `Department` contains an array of `Course` structures. Each `Course` contains a list of enrolled students. Write a C program that:
→ Dynamically allocates memory for a university with at least two departments, each with several courses and students.
→ Implements functions to add departments, courses, and students, ensuring proper memory management at each level.
→ Provides a function to print out the entire university structure, showing all departments, courses, and students.
→ Explain the memory layout, alignment, and potential padding issues that might arise with this nested structure.