Je vais avoir quelques problèmes mettre en œuvre ma propre mémoire dynamique allocateur en utilisant une liste Implicite pour suivre les blocs libres dans c. **** Plus précisément, je vais avoir des problèmes avec la mise en œuvre realloc et changer le code de trouver ajustement/premier ajustement à la prochaine forme. Le meilleur ajustement serait idéal mais laisse juste dire prochain approprié pour maintenant. J'ai tout autre chose en bas, ses seulement ces deux articles en particulier ...Des problèmes d'écriture ma propre malloc, libre, et realloc
plus d'info ...
Je suis en train de mettre en œuvre ma propre version d'un allocateur de mémoire dynamique avec mes propres versions de malloc, libre, et realloc ... Il existe quatre méthodes pour garder la trace des blocs libres dans un allocateur de mémoire dynamique, le premier de ceux-ci que j'ai ici est une liste implicite, qui utilise un en-tête . Pour trouver un bloc libre dans une liste Implicite il y a plusieurs politiques de placement qui peut être promulgués dans une liste implicite. Le premier s'appelle first fit ou find fit qui se trouve dans le code ci-dessous ... il recherche la liste depuis le début, et choisit le premier bloc libre qui lui convient. La méthode suivante s'appelle next fit que j'ai du mal à implémenter, et cette méthode est similaire à first fit, mais au lieu de commencer chaque recherche au début de la liste, elle démarre chaque recherche où la recherche précédente s'est arrêtée. Enfin il y a le meilleur ajustement ... ce serait la méthode idéale pour moi mais je sais que c'est plutôt compliqué et assez difficile, donc je vais prendre juste la prochaine, mais s'il y a quelqu'un qui sait comment mettre en place le meilleur ajustement dans une liste implicite S'IL VOUS PLAÎT, n'hésitez pas à le poster. Le meilleur ajustement porte sur tous les blocs libres et choisit le bloc libre avec la plus petite taille qui correspond à ... Je sais que pour un meilleur ajustement, il est possible d'éliminer les pieds de page dans les blocs alloués ... la plupart du temps parce qu'ils ne sont pas vraiment nécessaires ... Je suis tout simplement pas exactement comment faire ...
Je comprends beaucoup de code, mais je voulais juste mettre tout à la fois si rien ne se manquer.
Je reste un espace pour realloc qui retourne NULL et est quelque part au milieu du code et find_ s'adapter que je veux changer la méthode de la politique de placement next_fit est vers le bas ...
Toute aide serait grandement apprécié ... Merci.
Le code est dans ce site ... désolé ... J'ai eu beaucoup de problèmes affichant le code ici ... encore plus, car il est si grand ... Je viens d'utiliser google il semble donc plus authentique ...
J'ai marqué les sections clairement dans le code sur le site donc il ne devrait avoir aucun mal à trouver le realloc et trouver des méthodes d'ajustement ...
C'est soit devoirs ou vous ne devriez pas être * * écrire votre propre malloc :-) Vous correspondez probablement jamais les performances de ceux qui sont déjà disponibles. Lequel est-ce? – paxdiablo
hah ... pas certainement pas son devoir ... J'ai fait avec l'école pendant un certain temps ... mais looong vous remercie de penser qu'il était ... Je me sens beaucoup plus jeune maintenant :) – jingojango
@ paxdiablo: Vous Soyez surpris par le nombre de personnes qui font des choses similaires par curiosité, pour l'auto-éducation, ou comme un passe-temps. J'écris une bibliothèque C. Il y en a beaucoup, mais celui-ci est à moi. ;-) – DevSolar