next up previous contents
suivant: Les fonctions monter: Quelques points délicats précédent: Compilation   Table des matières

Initialisation

Le type mpz_t vous est fourni avec la librairie, méfiez-vous de l'absence d'étoile, il y a nécessairement des pointeurs derrière ce type. Des fonctions préfixées par mpz_init vous permettent d'initialiser ces variables. N'oubliez jamais l'initialisation, elle correspond à l'allocation dynamique, elle n'oubliez jamais la destruction, qui elle correspond à la libération de la mémoire.


\begin{clisting}
mpz_t i; // declaration
mpz_init(i); // allocation
\end{clisting}

Les instructions ci-dessus déclarent un entier multiprécision $i$ et effectuent l'allocation dynamique. La fonction mpz_init initialise $i$ à $0$. Ne pas confondre initialisation et affectation. Un fois la variable initialisée, vous pouvez lui affecter toutes les valeurs que vous voulez. Par contre n'initialisez pas une variable déjà initialisée, vous devez préalablement la détruire. On détruit un entier multiprécision (bref, on libère la mémoire) avec la fonction mpz_clear.


\begin{clisting}
mpz_t i; // declaration
mpz_init(i); // allocation
mpz_set_ui(i...
...*
Utilisation de i
*/
mpz_clear(i); // liberation de la memoire
\end{clisting}


next up previous contents
suivant: Les fonctions monter: Quelques points délicats précédent: Compilation   Table des matières
klaus 2010-08-05