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 :

les tableaux et le pointeur !prob


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut les tableaux et le pointeur !prob
    Salut à tous je ss debutant en C .... j aime bcp de trouver la solution de mon prob chez vous ...
    bon , ...

    Nous avons vu que le mode de transmission par valeur semblait interdire à une fonction de modifier la valeur de ses arguments
    effectifs et nous avions mentionné que les pointeurs fourniraient une solution à ce problème.

    j ai essayé deja avec les variables , et aprés le deroulement ce code fonction trés trés bien §....


    mais j aime a faire ça avec les tableau et les enregistrements ...
    comment on peut faire ça .... !

    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
    /**************************************/
    void echange(int * i,int * l)
    {
    int x;
    x=*l;
    *l=*i;
    *i=x;
    }
    /**********************************/
     
    void tab(int *t[2]; int *k[2], struc *strr )
    {
    int n;
    n=0;
    *t[1]=n;
    n=1;
    *t[2]=n;
     
    *k[]=*t[]; //
    printf("%d %d",t[1],t[2]);
    }

  2. #2
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 076
    Points : 2 329
    Points
    2 329
    Par défaut
    Euh, je suis désolé, mais sur le coup, je n'ai rien compris a ce que tu racontait

    Deux trois conseil pour améliorer la lisibilité de ton post :

    Lorsque tu post un code, il faut que tu utilise les balise code Elles se situe au dessus de la ou tu ecrit et la symbole est un diese en gras. La balise est comme ceci [ C O D E ] [ / C O D E ] sauf qu'il n'y a pas d'espace.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void echange(int *i, int *l)
    {
       int x = (*l);
       (*l) = (*i);
       (*i) = x;
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    /*  /!\ Attention, pas de ; entre les different argument
    void tab(int *t[2], int *k[2], struc *strr )
    {
       int n = 0;
       *t[1]=n;
       n=1;
       *t[2]=n;
    
       *k[]=*t[]; //
       printf("%d %d",t[1],t[2]);
    }
    Bon, si j'ai bien comprit, tu souhaite changer des valeur de par des fonctions en passant des pointeur. Apparemment, tu as réussi avec des variable, mais tu voudrais savoir comment faire avec des tableaux ou des structure (parce que enregistrement, a part en pascal, ca me dit rien en C).

    Il faut que tu lise des didactitiel sur les tableau en C. Developpez propose cela.

    Si ton tableau est declarer statiquement ou dynamiquement, on ne le passe pas de la meme maniere.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    /* t est un tableau allouer statiquement
       alors que k est un pointeur sur un tableau allouer dynamiquement */ 
    void tab(int t[], int *k)
    {
     
    }
    Pourrait tu poster un code minimal avec le main afin de bien voir e qui ne va pas ?

  3. #3
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    Citation Envoyé par SofEvans Voir le message
    Si ton tableau est declarer statiquement ou dynamiquement, on ne le passe pas de la meme maniere.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    /* t est un tableau allouer statiquement
       alors que k est un pointeur sur un tableau allouer dynamiquement */ 
    void tab(int t[], int *k)
    {
     
    }
    Ah bon, pour faire simple essaies les écritures suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    void tab(int t[], int k[])
    void tab(int *t, int *k)
    To start press any key. (reading screen) Where's the "any" key? I see Esc, Catarl, and Pig Up. There doesn't seem to be any "any" key. Wo! All this computer hacking is making me thirsty. I think I'll order a Tab. (presses TAB key). -- HOMER --

  4. #4
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 076
    Points : 2 329
    Points
    2 329
    Par défaut
    ssmario >> Je me suis trompé ?

    Ca fait longtemps que je declare toujours *t car mes tableaux sont alloué dynamiquement ( ou je suis sur du C++ ).
    Je pensais vraiment qu'il y avait deux maniere, c'est faux ?

  5. #5
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    Oui, dans ce contexte c'est pareil.
    Le nom du tableau est toujours converti en un pointeur vers son premier élément, sauf dans les cas suivants :
    • Devant l'opérateur sizeof
    • Devant l'opérateur &
    • Une chaîne littérale utilisée pour l'initialisation d'un tableau

    d'où cette équivalence d'écriture, comme avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int t[16];
    int *p = t;
     
    p[3] == t[3] == *(p+3) == *(t+3)
    To start press any key. (reading screen) Where's the "any" key? I see Esc, Catarl, and Pig Up. There doesn't seem to be any "any" key. Wo! All this computer hacking is making me thirsty. I think I'll order a Tab. (presses TAB key). -- HOMER --

  6. #6
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Le nom du tableau est toujours converti en un pointeur vers son premier élément, sauf dans les cas suivants :
    • Devant l'opérateur sizeof
    • Devant l'opérateur &
    • Une chaîne littérale utilisée pour l'initialisation d'un tableau
    C'est plutôt derriere ou avec les opérateurs ....
    La chaîne littérale n'ayant pas d'identificateur, la question ne se pose pas

    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

Discussions similaires

  1. Premières galères avec les tableaux et les pointeurs
    Par Gargok dans le forum Débuter
    Réponses: 23
    Dernier message: 29/12/2014, 19h29
  2. prob avec les tableaux
    Par marooh dans le forum Débuter
    Réponses: 8
    Dernier message: 19/10/2010, 11h41
  3. Les tableaux de pointeurs char*
    Par Basmor dans le forum Débuter
    Réponses: 4
    Dernier message: 28/08/2009, 01h19
  4. petit prob avec les tableaux
    Par imorum dans le forum Langage
    Réponses: 7
    Dernier message: 11/11/2008, 19h30
  5. Problème avec les tableaux de pointeurs
    Par TheDoci dans le forum C
    Réponses: 2
    Dernier message: 07/01/2007, 13h04

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