Because pointer arithmetic does not take account of polymorphism, a major problem with arrays is that they do not interact well with polymorphism (see Stroustrup 06, Meyers 06), as the following example illustrates:
...
Using arrays polymorphically can result in memory corruption, which could lead to an attacker being able to execute arbitrary code.
...