Ouais, il y a une certaine carence dans l'utilisation des pointeurs ;-)
Prenons un exemple (j'ai choisi le plus simple, mais si tu comprends celui-là, il y a espoir que tu comprennes les autres ! )
int *ptr_integer;
*ptr_integer=1;
Tu déclares 'ptr_integer' comme un pointeur sur un entier et ensuite tu dis que le contenu de la case mémoire pointée par le pointeur est '1', mais tu n'as jamais réservé cette case mémoire. Après déclaration, le pointeur pointe sur n'importe quoi.
Ah oui l'utilisation des pointeurs est une chose délicate et il faut absolument les maîtriser sinon il faut changer de langages.
Avec les pointeurs, toujours respecter:
déclaration, allocation (ou initialisation), utilisation, libération
Toujours respecter et toujours dans l'ordre sinon on court inexorablement à la catastrophe.
Bon courage.