Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1567 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  allocation memoire dans une fonction

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

allocation memoire dans une fonction

n°2207146
Covariance
Posté le 18-10-2013 à 10:57:29  profilanswer
 

Bonjour lorsque je fais appel a cette fonction dans le main au final l'allocation ne se fait pas alors que si je mets lintereur dans du code directeur dans la fonction cela marche, ça avait marche pr un tableau1D... Qu'en pensez vous ? Une histoire de portée?

Code :
  1. void tableauallo2D (int* taille, int**  tableau2D){
  2. tableau2D=new int*[taille[0]];
  3. for(int i=0; i<taille[0];i++)
  4.     {
  5.         tableau2D[i]=new int[taille[1]];
  6.         }
  7. }


 

mood
Publicité
Posté le 18-10-2013 à 10:57:29  profilanswer
 

n°2207152
Farian
Posté le 18-10-2013 à 11:18:42  profilanswer
 

Bonjour !  
 
Deux remarques  :
 
* Que vaut taille[0] ?
* Vous modifiez un paramètre passé par valeur, ce qui est possible, mais la modification ne se fait qu'en local, le paramètre n'est pas modifié dans la fonction appelante. Donc,  l'allocation se fait, mais vous ne récupérez pas la valeur de tableau2D.
 
Sinon, pourquoi ne pas utiliser les std::vector ?
 
Bonne continuation !
 

n°2207337
Terminapor
I'll see you rise.
Posté le 19-10-2013 à 12:50:31  profilanswer
 

Comme déjà dit, tu modifie pas tableau2D en dehors de ta fonction.
 
Pour changer ça, tu peux faire ça :  
 

Code :
  1. void tableauallo2D (int* taille, int** & tableau2D)
  2. {
  3.     tableau2D=new int*[taille[0]];
  4.     for(int i=0; i<taille[0];i++)
  5.     {
  6.         tableau2D[i]=new int[taille[1]];
  7.     }
  8. }
  9. // ou :  
  10. void tableauallo2D (int* taille, int*** tableau2D)
  11. {
  12.     (*tableau2D)=new int*[taille[0]];
  13.     for(int i=0; i<taille[0];i++)
  14.     {
  15.         (*tableau2D)[i]=new int[taille[1]];
  16.     }
  17. }


 
La meilleur solution reste d'utiliser les std::vector :jap:.


---------------
Perhaps you don't deserve to breathe

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  allocation memoire dans une fonction

 

Sujets relatifs
obtenir tous les appels à une fonction, en fin de codeFaire fonctionner la fonction filemtime
Tracer d'une fonction de répartition sous javaVBA - couleur texte cellule en fonction du jour
Vous avez essayé d'executer une requete ne comprenant pas la fonctionImport de la fonction C Math modf et utilisation.
fonction combinaison en c++SQL 3 tables récupérer des informations en fonction d'une variable
J'aimerais créer une fonction bien spéciale aidez-moi un peu svp ;)Fonction récursive R
Plus de sujets relatifs à : allocation memoire dans une fonction


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR