Pointeurs et structures de données : la logique de séparation