[1] lives on heap and can change size. [2] C++ (via pointer), JavaScript, Python, etc. support these [3]E.g. in C++ myType *heapArray = new myType[100]; delete [] heapArray; [4] Advantage: flexibility (arrays can grow or shrink during program execution)