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 :

taille d' un tableau de int


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de lastrecrue
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    360
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2006
    Messages : 360
    Par défaut taille d' un tableau de int
    j'essaie de faire une fonction qui affiche un tableau de int, dont je connais pas la taille au préalable, j'ai pensé a utiliser size of mais ce ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void affiche(int *tab)
    {
    int i;
    for(i=0;i<(sizeof(tab)/sizeof(tab[i]));i++)
    	printf("%d\n",tab[i]);
    }

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Lors du passage de tab en parametre de ta fonction, tab devient un pointeur vers le premier element du tableau (histoire de ne pas avoir a passer un enorme tableau par copie). sizeof tab donne donc la taille de ce pointeur. Tu n'as alors pas le choix: il faut passer le nombre d'element du tableau en parametre de la fonction.

  3. #3
    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 lastrecrue
    j'essaie de faire une fonction qui affiche un tableau de int, dont je connais pas la taille au préalable, j'ai pensé a utiliser size of mais ce ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void affiche(int *tab)
    {
    int i;
    for(i=0;i<(sizeof(tab)/sizeof(tab[i]));i++)
    	printf("%d\n",tab[i]);
    }
    A ton avis, à quoi sert le deuxième paramètre de fgets() ?

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    En générale ce que je fait, si c'est un tableau alloué dynamiquement, je met toujours le dernier élément à la valeur NULL ce qui me permet d'éviter de passer en argument la taille du tableau !

    Une simple boucle while qui parcours le tableau jusqu'à tomber sur l'élément NULL suffit
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    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 Franck.H
    En générale ce que je fait, si c'est un tableau alloué dynamiquement, je met toujours le dernier élément à la valeur NULL ce qui me permet d'éviter de passer en argument la taille du tableau !
    Tu fais donc un tableau de pointeurs. Prévoir une place supplémentaire pour la sentinelle.

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Tu fais donc un tableau de pointeurs. Prévoir une place supplémentaire pour la sentinelle.
    Oui, bon en générale je l'applique surtout à des tableau de tableau sur char mais c'est également valable pour les autres types !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  7. #7
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Franck.H
    Oui, bon en générale je l'applique surtout à des tableau de tableau sur char mais c'est également valable pour les autres types !
    Il faut encore qu'il y ait une valeur acceptable pour la sentinelle.

  8. #8
    Membre éclairé Avatar de lastrecrue
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    360
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2006
    Messages : 360
    Par défaut
    Citation Envoyé par Franck.H
    En générale ce que je fait, si c'est un tableau alloué dynamiquement, je met toujours le dernier élément à la valeur NULL ce qui me permet d'éviter de passer en argument la taille du tableau !

    Une simple boucle while qui parcours le tableau jusqu'à tomber sur l'élément NULL suffit
    ça tombe bien dans mon tableau il n' y a que des 0 et des un.

  9. #9
    Membre éclairé Avatar de lastrecrue
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    360
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2006
    Messages : 360
    Par défaut
    salut
    dans une autre portion du programme j'ai eu le même problème en fait moi j'évite de mètre des string alors que avec sterln() ça serais plus facile je ne veut pas non plus faire des variable globale je pense a faire des transfert par adresse mais ce ne me parait pas logique qu'il n y a pas un autre moyen de résoudre ce problème rien qu'avec la donné du tableau que j'ai.
    NB: tous mes tableau sont allouaient par malloc()

  10. #10
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Citation Envoyé par lastrecrue
    j'évite de mètre des string
    [TROLL ON]
    Tu fais comme tu veux.
    [TROLL OFF]

    Le type string n'existe pas en C.

    Citation Envoyé par lastrecrue
    alors que avec sterln()
    Cette fonction n'existe pas dans le C standard. Peut être que tu parlais de strlen(), ça prend un char* en entrée.

    Citation Envoyé par lastrecrue
    a faire des transfert par adresse
    De quoi ??? Tu veux peut-être parler de passage de pointeur en paramètre.

  11. #11
    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 lastrecrue
    j'ai eu le même problème en fait moi j'évite de mètre des string

    Je comprends !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 18/11/2007, 17h41
  2. problème our passer des string dans tableau d'int
    Par Battosaiii dans le forum C++
    Réponses: 9
    Dernier message: 15/07/2004, 17h42
  3. taille d'un tableau
    Par monstour dans le forum ASP
    Réponses: 3
    Dernier message: 24/06/2004, 15h16
  4. Taille maximum de tableau en Delphi
    Par yannick37 dans le forum Langage
    Réponses: 5
    Dernier message: 03/03/2004, 13h18
  5. qbasic : taille d'un tableau
    Par clood200 dans le forum Basic
    Réponses: 2
    Dernier message: 16/09/2003, 07h26

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