Bonjour,
en faisant des recherches sur la définition d'allocation dynamique de mémoire en C je suis tombé sur les articles Wikipédia français et anglais : https://en.wikipedia.org/wiki/C_dyna...ory_allocation
https://fr.wikipedia.org/wiki/Malloc
Il me semble qu'il y a une ambiguïté sur l'utilisation du terme "allocation dynamique", en effet, l'article anglais précise que l'allocation dynamique se fait via l'utilisation des fonctions telles que malloc et calloc (donc uniquement sur le tas) :
"C dynamic memory allocation refers to performing manual memory management for dynamic memory allocation in the C programming language via a group of functions in the C standard library, namely malloc, realloc, calloc and free."
L'article français stipule, quant-à-lui, que l'allocation dynamique englobe l'utilisation des fonctions telles que malloc et calloc (sur le tas) ainsi que l'allocation automatique (sur la pile). La différence entre l'allocation dynamique et statique se situerait dans le fait que la mémoire serait allouée statiquement à la compilation et dynamiquement au cours de l'execution.
"L'allocation de mémoire pour un programme peut s'effectuer de trois manières :
statiquement, au cours de la compilation par la déclaration de variables statiques : variables globales ou variables locales déclarées en utilisant le mot-clé static,
dynamiquement, au cours de l'exécution :
soit de façon automatique sur la pile d'exécution : variables locales déclarées dans un bloc d'instructions,
soit à la demande sur le tas : en utilisant des fonctions d'allocation de la mémoire."
Pouvez-vous m'éclairer sur la véracité de ces définitions ?
Est-ce que celles-ci sont valables en C++ ?
Merci pour votre aide![]()
Partager