Bonjour;bonsoir


J'aimerais avoir une explication sur l'utilisation des fonctions malloc/calloc/realloc et peut être d'autre s'il en existe d'autre^^

J'ai lu les informations que me donne mon linux en faisant un man; mais des exemples ne serait pas de refus pour illustrer tout ça.


D’après ce que j'ai compris la seule différence entre calloc et malloc c'est que lors du malloc on doit utiliser un memset. (Si je traduis avec mon misérable anglais; ça veut donc dire que malloc on lui dit à partir de quel endroit dans la mémoire on doit allouer de l'espace ?)
Je n'ai jamais vu d'utilisation de ce fameux memset d'où le fait que je galère à comprendre.


Je suis amené à manipuler ces fonctions dans un tp; et je voudrais bien comprendre leur fonctionnement.


Par exemple; admettons que l'on est un tableau déclaré sous forme de pointeur; un tableau dynamique donc.


Pour allouer de la mémoire j'ai réalisé un calloc comme ceci: t étant du type du tableau.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
t=calloc(5 , sizeof(int));
Donc on aura l'équivalent d'un tableau t[5] sur lequel on peut travailler; affecter des valeurs ou autres.

Maintenant, admettons que ce tableau de taille 5 soit plein et que je veuille augmenter sa mémoire à nouveau c'est à dire passer de t[5] à t[8] par exemple.
Comment dois je procéder ? Je suppose que c'est là que le realloc entre en jeu ?



Ça, c'était pour la partir logistique.


J'aimerais bien également comprendre comment ces allocations se font au niveau architecture; mais ça c'est encore autre chose.


Merci pour votre aide !