IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

prob fonction simple initialisation tableau


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 251
    Par défaut prob fonction simple initialisation tableau
    bonsoir je voudrais faire une fonction qui initialise un tableau a deux dimensions a 0.Le corps de la fonction est juste(dur de se tromper)mais quand j essaie de faire une fonction et la reutiliser dans un main() j ai un probleme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    #include <stdio.h>
    #include <stdlib.h>
    #define NB_ELEM 10
     
     
    int init_tab(int tab[ NB_ELEM ][ NB_ELEM ])
    {
     
         int i,j;
         for(i=0;i<2;i++)
         {
                         for (j=0;i<2;j++)
                         {
                          tab[i][j]=0;
                          }
         }
     
    }
     
    main()
    {
        int tab[ NB_ELEM ][ NB_ELEM ];
        tab=init_tab( tab[NB_ELEM][ NB_ELEM ]); 
     
     
     
     
    }
    voici la reponse du compilateur:

    C:\Documents and Settings\Administrateur\Mes documents\tab.cpp In function `int main()':

    23 C:\Documents and Settings\Administrateur\Mes documents\tab.cpp invalid conversion from `int' to `int (*)[10]'

    23 C:\Documents and Settings\Administrateur\Mes documents\tab.cpp initializing argument 1 of `int init_tab(int (*)[10])'

    23 C:\Documents and Settings\Administrateur\Mes documents\tab.cpp incompatible types in assignment of `int' to `int[10][10]'
    est ce que vous pouvez m aidez ça sdoit etre simple ?

  2. #2
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par sneb5757
    bonsoir je voudrais faire une fonction qui initialise un tableau a deux dimensions a 0.Le corps de la fonction est juste(dur de se tromper)mais quand j essaie de faire une fonction et la reutiliser dans un main() j ai un probleme.
    Il faut fournir a init_tab le tableau, pas un element du tableau. L'appel dans le main est donc :


  3. #3
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Ta fonction init_tab ne retourne pas de int, non plus... donc fais attention, car le valeur de retour est n'importe quoi dans ce cas !

  4. #4
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Par défaut
    Dans le second for c'est 'j<2' et pas i, sinon tu obtiens une boucle infinie.

    Et pourquoi 2 et pas MAX_ELEM ?

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 251
    Par défaut
    parce que j ai fait des modif et j ai oublié de corriger les element mais j avais vu j ai corrigé.je donne quel type de sorti alors ?

  6. #6
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 251
    Par défaut
    c est bon j ai mis un void et j ai corrigé mes fautes.

    Me sens tres con la

  7. #7
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Je ne saurais te conseiller que très vivement de placer un "return;" dans ta fonction retournant void, de façon à rendre clair et visible l'endroit où la fonction s'arrête ; ça t'évitera de nombreux problèmes par la suite.

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par InOCamlWeTrust
    Je ne saurais te conseiller que très vivement de placer un "return;" dans ta fonction retournant void, de façon à rendre clair et visible l'endroit où la fonction s'arrête ; ça t'évitera de nombreux problèmes par la suite.
    Euh, pourquoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void init_tab (int tab[][NB_ELEM])
    {
       size_t i;
       for (i = 0; i < NB_ELEM; i++)
       {
          size_t j;
          for (j = 0; i < NB_ELEM; j++)
          {
             tab[i][j] = 0;
          }
       }
    }
    Elle s'arrête à la fin tout à fait normalement, pourquoi faire un return ?

Discussions similaires

  1. Initialiser tableau en fonction d'un char*
    Par Arnaud F. dans le forum Débuter
    Réponses: 2
    Dernier message: 20/03/2009, 18h13
  2. fonction qui initialise a blanc zone de texte
    Par access dans le forum Requêtes
    Réponses: 1
    Dernier message: 27/11/2003, 16h36
  3. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 15h33
  4. fonction renvoyant un tableau en argument
    Par Jones dans le forum Langage
    Réponses: 6
    Dernier message: 30/09/2002, 18h20
  5. Fonction de type tableau
    Par Charles f dans le forum Langage
    Réponses: 5
    Dernier message: 04/08/2002, 14h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo