begin process at 2012 05 29 05:03:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Fonction renvoyant plrs tableaux


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction renvoyant plrs tableaux

mardi 24 janvier 2006 à 22:54:53 | Fonction renvoyant plrs tableaux

tomalille

Bonjour,
je travaille sur un programme minupulant des tableaux.
Est-il possible de faire une fonction renvoyant plusieurs tableaux à la fois.
Concrêtement peut-on faire un :
   return tab1,tab2;
Deplus, si cela est possible, comment faire ensuite pour les réutiliser.
Merci
Thomas
mardi 24 janvier 2006 à 23:06:45 | Re : Fonction renvoyant plrs tableaux

Galmiza

Impossible de renvoyer plusieurs paramètres. Par contre, tu peux donner en paramètres des adresses dans la mémoire où il y a des pointeurs vers des tableaux. void tableau(char** tab1, int** tab2) { char *array1 = new char[128]; int *array2 = new int[14]; *tab1 = array1; *tab2 = array2; }
mercredi 25 janvier 2006 à 16:14:48 | Re : Fonction renvoyant plrs tableaux

tomalille

oki merci,
mais comment tu fais ensuite pour l'utiliser?
Par exemple tu le lances dans ton main.
Thomas
mercredi 25 janvier 2006 à 16:41:07 | Re : Fonction renvoyant plrs tableaux

Galmiza

void tableau(char** tab1, int** tab2) { char *array1 = new char[128]; int *array2 = new int[14]; *tab1 = array1; *tab2 = array2; } int main() { // Les pointeurs char *chartab; int *inttab; // On donne a la fonction les adresses de ces pointeurs pour qu'elle y stocke les données allouées tableau(&chartab, &inttab); // .... // Libération des mémoires allouées dans la fonctions delete [] chartab; delete [] inttab; return 0; }
mercredi 25 janvier 2006 à 16:44:35 | Re : Fonction renvoyant plrs tableaux

Galmiza

C'est mal dit. Les pointeurs initialement ne pointent rien du tout. La fonction alloue de la mémoire dont les adresses sont stockées dans ces pointeurs. Ca revient à faire: int main() { char *chartab = new char[128]; int *inttab = new int[14]; // ... delete [] chartab; delete [] inttab; return 0; }
mercredi 25 janvier 2006 à 16:50:02 | Re : Fonction renvoyant plrs tableaux

tomalille

Merci,
quand je suis tes conseils, j'ai des erreurs :
'new' undeclared (first use in this function)
Faut-il utiliser une librairie?
mercredi 25 janvier 2006 à 16:59:23 | Re : Fonction renvoyant plrs tableaux

tomalille

voici une partie de mon code:

void lectureDemandes(int **demandes)
{
    int i,
        j;
   
    int *tempDemandes = new int[nbChemins][5];

    for(i=0;i<nbDemandes;i++)
    {   
        for(j=0;j<4;j++)
            fscanf(fichierEntree,"%d",&tempDemandes[i][j]);
    }
   
    *demandes = tempDemandes;
}

mercredi 25 janvier 2006 à 17:04:42 | Re : Fonction renvoyant plrs tableaux

Galmiza

new est un opérateur d'allocation de mémoire. #include devrait te charger tous les headers nécessaires et bien d'autres encore. sinon malloc = memory allocation int *inttab = new int[14]; == int *inttab = malloc(14*sizeof(int)); et delete [] inttab; == free(inttab);
mercredi 25 janvier 2006 à 17:09:57 | Re : Fonction renvoyant plrs tableaux

tomalille

oki pour le malloc mais dans mon cas j'ai des tableaux à 2 entrées
Merci
mercredi 25 janvier 2006 à 17:15:26 | Re : Fonction renvoyant plrs tableaux

Galmiza

Réponse acceptée !
Si c'est un tableau à plusieurs dimensions, il faut utiliser un pointeur de pointeurs (pointeur double). En fait, un seul tableau de pointeur de type int. Chaque pointeur de ce tableau pointe de la mémoire. // int avec 2 '*' allocation tableau de pointeurs de type int* int **tempDemandes = new int*[nbChemins]; // Allocation de 5 int pour chacun des nbChemins pointeurs du tableau int** for (i=0; i

1 2

Cette discussion est classée dans : fonction, possible, tableaux, renvoyant, plrs


Répondre à ce message

Sujets en rapport avec ce message

ADO : est-ce possible en c++ de déclarer une fonction qui prend un DataRow en parametre? [ par grapevine ] Bonjour ,Voila 2 jours que je m'arrache les cheveux , car Visual C++ DotNet , n'accepte pas que j'ecrive une fonction avec ce prototype:void Fonction( Re-utiliser une variable [ par squall51 ] J'essaie de créer un programme.J'ai du le diviser en plusieurs fonction.J'aimerai savoir si il est possible d'utiliser une variable definie dans un fo Fonction static... [ par DMK04 ] Bonjour,Je voudrais savoir s'il est possible d'appeler des fonctions non static depuis une fonction static ? De même pour l'utilisation d'une variable Tableaux en paramètre de fonction [ par jazz2 ] Si les pointeurs sont l'unique façon de passer un tableau en paramètre de fonction, alors comment passer un tableau comme paramètre de fonction, de so rediriger cerr vers fonction [ par Roro8883 ] Bonjour à tous !J'aimerais savoir si c'est possible de rediriger les cerr vers une fonction ?!Parce qu'en fait j'suis en train de faire un programme u Fonction + Ajout dans la fonction d'une classe hérité [ par christophedlr ] Bonjour à tous,Le titre n'est peut être pas très explicite, je vous explique.Mettons que nous avons deux classes : A et B.B hérite de A.Je voudrais sa des tableaux de tableaux de caracteres, c'est possible? [ par Arnaud16022 ] Hello!je voudrais savoir s'il y a moyen de faire un tableau a 2 dimensions qui puisse enregistrer ca:exemple:char ** tab={"hello","hello2","kgklhgklhl Appel d'une fonction à la compilation (c++) [ par Macvel ] Bonjour,je voudrais savoir s'il est possible de faire en sorte qu'une fonction soit exécutée à la compilation par l'intermédiaire des directives de co Tableaux a 2 dimensions sous C++ Builder [ par manta7 ] Salut a tous, ma question est simple sous c++ builder, j'arrive a declarer un tableau à 2 dimension par ex int tab[5][5] et j'aimerai ensuite le passe Passage de tableaux dynamiques (2 dimensions) en paramètres [ par Flo1987 ] Bonjourje travaille avec des matrices et j'ai un problème lorsque je veux effectuer des des opérations dessus (chaque opération est une fonction à par


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales