If I remember right, it was memory safe - something C/C++ has yet to achieve.
But it _did_ have range checks for array access.
What's an example of the pain?
https://docwiki.embarcadero.com/RADStudio/Florence/en/Pointe...
Object Pascal's pointer syntax is detailed in the links I gave you.