Allocation mémoire [Résolu]

cs_sephiro 101 Messages postés dimanche 1 avril 2001Date d'inscription 18 février 2008 Dernière intervention - 26 janv. 2007 à 17:04 - Dernière réponse : cs_sephiro 101 Messages postés dimanche 1 avril 2001Date d'inscription 18 février 2008 Dernière intervention
- 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
Nikoui 794 Messages postés vendredi 24 septembre 2004Date d'inscription 19 août 2008 Dernière intervention - 26 janv. 2007 à 17:16
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".

Merci Nikoui 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de Nikoui
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 27 janv. 2007 à 02:13
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
cs_sephiro 101 Messages postés dimanche 1 avril 2001Date d'inscription 18 février 2008 Dernière intervention - 27 janv. 2007 à 08:11
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.