Allocation memoire en C
Sabre
-
TuXor Messages postés 97 Date d'inscription Statut Membre Dernière intervention -
TuXor Messages postés 97 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je sais que en langage C la gestion de mémoire est primordiale, surtout au niveau des pointeurs.
Par contre je trouve sopuvent dans des programmes des ligne de code comme celle-ci:
Or si je ne m'abuse ce code est cohérent malgrès le fait que on a pas réservé la mémoire.
Un grand merci à celui qui pourrait m'éclairçir la situation.
je sais que en langage C la gestion de mémoire est primordiale, surtout au niveau des pointeurs.
Par contre je trouve sopuvent dans des programmes des ligne de code comme celle-ci:
char *tableau="chaine de caracteres";
Or si je ne m'abuse ce code est cohérent malgrès le fait que on a pas réservé la mémoire.
Un grand merci à celui qui pourrait m'éclairçir la situation.
A voir également:
- Allocation memoire en C
- Mémoire vive - Guide
- RAM : type, format, CAS, vitesse, tout sur la mémoire vive - Guide
- Nettoyer memoire iphone - Guide
- C'est un secret bien gardé : ce réglage d'expert peut doper les performances de votre PC - Guide
- Gmail memoire insuffisante - Guide
4 réponses
salut!
ca ca veut dire que ableau est un pointeur de char(chaine de caractere) qui contient la valeur "chaine de caractere"!
ca ca veut dire que ableau est un pointeur de char(chaine de caractere) qui contient la valeur "chaine de caractere"!
C'est le compilateur qui réserve l'espace nécessaire au stockage de la chaîne ET en fournit l'adresse.
Salut,
j'ai "subi" quelque cours a ce sujet, et voila ce qui m'en reste :
En fait le C offre deux niveaux de gestion mémoire, d'un coté le compilateur gère automatiquement un espace mémoire(je crois que c'est la "pile") qui est alloué a l'exécution de ton programme (c'est pour cela par exemple qu'on spécifie la taille des tableaux et que l'on définit les différants type des variables ) pour utilier juste la place nécessaire.
Il existe également un autre espace de mémoire (le "tas" me semble-t-il) qui est lui géré par le programmeur, c'est la qu'intervient la manipulation de pointeurs dynamique. (malloc, sizeof etc...)
le programmeur demande un espace mémoire qui va lui étre accordé, et qui va étre accessible par un pointeur qui est en fait une adresse mémoire.
j'espère que ces quelques explication sont compréhenibles et qu'elle auront été utiles (c'est de tête il peut y avoir des erreurs)
@+
j'ai "subi" quelque cours a ce sujet, et voila ce qui m'en reste :
En fait le C offre deux niveaux de gestion mémoire, d'un coté le compilateur gère automatiquement un espace mémoire(je crois que c'est la "pile") qui est alloué a l'exécution de ton programme (c'est pour cela par exemple qu'on spécifie la taille des tableaux et que l'on définit les différants type des variables ) pour utilier juste la place nécessaire.
Il existe également un autre espace de mémoire (le "tas" me semble-t-il) qui est lui géré par le programmeur, c'est la qu'intervient la manipulation de pointeurs dynamique. (malloc, sizeof etc...)
le programmeur demande un espace mémoire qui va lui étre accordé, et qui va étre accessible par un pointeur qui est en fait une adresse mémoire.
j'espère que ces quelques explication sont compréhenibles et qu'elle auront été utiles (c'est de tête il peut y avoir des erreurs)
@+