Comment faire la fonction PilePleine pour une pile Dynamique

Fermé
rabah200830 - 25 févr. 2013 à 14:53
 Utilisateur anonyme - 25 févr. 2013 à 23:30
Bonjour,

Voila j'ai vu sur un sujet d'exercice qu'on demande de réaliser la fonction :

pilePleine(PileD p)


Moi je croyais qu'une pile dynamique n'est jamais pleine. Je rate quelque chose?

A voir également:

2 réponses

Utilisateur anonyme
25 févr. 2013 à 15:07
Bonjour

Oui tu rates quelque chose si tu crois que les ressources de ton PC sont infinies. Il y a forcément une limite quelque part, et il vaut mieux s'arrêter avant de l'atteindre car tenter de dépasser les limites signifie en général se planter.
Si ça ne te gêne pas de prendre toute la mémoire pour toi tout seul, tu peux te contenter de tester le résultat de la fonction d'allocation (malloc ou autre) que tu utilises pour savoir s'il reste de la mémoire ou pas. Il y a peut-être des fonctions qui te disent combien il reste de mémoire, à voir dans les bibliothèques du C.
0
Oui je sais que les ressources d'ordinateur ne sont pas infinis mais voici le problème :
Si la fonction malloc retourne une valeur différente de null à l'instant t0 mais c'est pas forcément le cas à l'instant t1. Le contraire est aussi valable : il se peut qu'à l'instant t0 ya pas d'espace libre mais à l'instant t1 un programme a libéré de l'espace.

Alors on ne peut être certaine qu'il y a de l'espace ou pas.

Est t'a une autre solution?

Cordialement
0
Utilisateur anonyme
25 févr. 2013 à 23:30
La fonction que tu dois faire n'est pas spécifiée, elle a juste un nom. Et d'après ce nom, on peut légitimement supposer qu'il s'agit de tester si une pile est pleine à un instant donné, pas si elle le sera encore quand on voudra faire une allocation mémoire.
Tout dépend aussi de ce qu'est cette pile dynamique : si elle utilise l'allocation mémoire du système, la seule méthode fiable me semble être d'effectuer l'allocation.
0
armasousou Messages postés 1267 Date d'inscription dimanche 16 août 2009 Statut Membre Dernière intervention 30 décembre 2016 83
25 févr. 2013 à 15:13
malloc renvoi null si l'alloc est pas possible, mais à par ça, je vois pas l'interet de faire une fonction pilepleine dans un but pédagogique.
0