je pense qu'il y a pas mal d'erreurs dans le coin...
Un pointeur (TYPE*) sur un objet de type TYPE c'est un variable qui contient l'adresse d'un objet de type TYPE.
Les pointeurs sont effectivement indispensables pour l'allocation dynamique.
Les pointeur sont aussi nécessaires aux fonctions pour modifier leurs arguments d'entrée.
Les pointeurs ne sont pas plus "globaux" qu'une autre variable typée.
On peut avoir un pointeur global, un pointeur présent dans la portée d'une fonction, d'une boucle... Bref exactement comme une variable ordinaire.