This is a serious shortcoming of Pascal. Most languages contain allow arrays to be created easily, because they are very useful and efficient data structures. The efficiency is a result of sequential memory allocation of the items in the array. The address of each element in the array can be quickly computed during run-time as soon as the index value is known. The equation used for the address computation is as follows where width refers to the number of bits each item in the array takes up.
Most languages simulate multi-dimensional arrays by creating an array of arrays in memory.
These are like arrays, but are indexed by strings of characters. A pointer contains the address of some other variable. Usually, a pointer only takes up a byte in memory. There are problems with letting the programmer explicitly mess around with the memory. Using free can cause dangling pointers .