Allocation mémoire [Résolu]

Messages postés
101
Date d'inscription
dimanche 1 avril 2001
Dernière intervention
18 février 2008
- - Dernière réponse : cs_sephiro
Messages postés
101
Date d'inscription
dimanche 1 avril 2001
Dernière intervention
18 février 2008
- 27 janv. 2007 à 08:11
Je débute en C# et je travaille surtout en C++
En C# pas besoin de libérer la mémoire OK, mais si je passe en parametre à une fonction un pointeur sur un tableau de byte initialisé à Null, j'alloue de la mémoire dans la fonction est ce que le run time ne va pas me libérer la mémoire en sortie de fonction ? J'ai fais quelques tests a premiere vue non, mais je voudrais etre sur.
exemple de ce que j'ai fais:
main
{
Byte[] Tableau=null;
MaFonction(ref Tableau);
}

MaFonction(ref Byte[] Tab)
{
   Tab=new Byte[500];
 return;
}

//  Ma memoire sera t elle libérée en fin de fonction MaFonction   ou fin de fonction Main ?
// Le Runtime libere la mémoire lorqu'il a le temps ou si nécessaire donc mes tests n'ont peut etre pas validé ma question.

Sephiro
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Dernière intervention
19 août 2008
3
Merci
Tant que ta mémoire sera référencée, elle ne sera pas libérée. Autrement dit, si ta variable Tableau est la seule à pointer sur ce bloc, la durée de vie du bloc sera la même que celle de 'Tableau".

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de Nikoui
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
0
Merci
Salut, il faut abandonner tes reflexes C++  inutile de passer le tableau avec "ref" les tableaux sont déja des références, là tu passe une sorte de "référence sur référence". Nikoui à déja répondu et effectivement le tableau ne sera pas libéré avant la fin de Main car tu as toujours une référence valide qui pointe sur la zone mémoire du tableau.
Commenter la réponse de Lutinore
Messages postés
101
Date d'inscription
dimanche 1 avril 2001
Dernière intervention
18 février 2008
0
Merci
Merci Nikoui
Je risque de garder mes reflexes C++ pendant un moment, la difficulté dans ce nouveau language c'est le manque de pointeur, je ne sais pas par qu'elle bout je dois attraper les object !!!
Sephiro
Commenter la réponse de cs_sephiro

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.