Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - TOME III. Les librairies utilitaires

5. Le groupe s_strs

5.6 SCR_realloc_chk (file s_allc.c:301)

Syntax

char *SCR_realloc_chk(old_ptr, el_size, old_count, new_count, panic)
void *old_ptr;
unsigned int el_size,
old_count,
new_count;
int panic;

Description

Réalloue un espace précédemment alloué en mémoire et fixe la valeur de chacun des bytes ajoutés à 0.

Si l'espace demandé est indisponible et que panic est non nul, la fonction appelle la fonction SCR_panic() qui par défaut affiche une message d'erreur et quitte le programme avec un code retour 2.

Si panic est nul, SCR_realloc_chk() retourne un pointeur nul et n'appelle pas la fonction SCR_panic().

SCR_panic() peut être replacée par une fonction utilisateur.

La fonction demande 4 paramètres :

Si l'ancien pointeur est nul, SCR_malloc() est appelé.

Dans les autres cas, l'actuelle valeur est d'abord copiée dans un buffer global, plus libérée. Ensuite, la nouvelle taille est allouée et remplie de 0, puis le buffer est copié dans le nouvel espace alloué.

Cette façon de procéder permet de gagner une place énorme lorsque des réallocations successives d'un même pointeur ont lieu.

Si le nouvel espace est plus petit que l'ancien, le même processus est effectué, ce qui assure une récupération réelle de l'espace.

La fonction standard realloc() n'est pas utilisée.

Exemple

    txt = SCR_realloc(txt, sizeof(char *), 20, 25);

Voir également

SCR_malloc(), SCR_free(), SCR_panic()

Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be