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 :

Assigner en même temps plusieurs cellules d'un tableau


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 26
    Points : 17
    Points
    17
    Par défaut Assigner en même temps plusieurs cellules d'un tableau
    Bonjour,

    Tout est dans le titre.

    Exemple :
    int tab[3]={0,1,2,3}; // déclaration
    tab = {4,5,6,7}; // assignation

    mais ca ne fonctionne pas

    merci

  2. #2
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut Re: Assigner en même temps plusieurs cellules d'un tableau
    Citation Envoyé par jphi5
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int tab[3]={0,1,2,3}; // déclaration
    c'est

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut Re: Assigner en même temps plusieurs cellules d'un tableau
    Citation Envoyé par jphi5
    int tab[3]={0,1,2,3}; // déclaration
    Ton tableau posséde 3 éléments(type int ici).Tu essaies cependant de l'initialiser avec 4 éléments(0,1,2,3).

    Citation Envoyé par jphi5
    tab = {4,5,6,7}; // assignation
    Pour affecter une valeur à un élément dans un tableau on peut utiliser l'indice de ce dernier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tab[0]=4; //affectation de la valeur 4 au premier élément du tableau
    tab[1]=5; //affectation de la valeur 5 au second élément du tableau
    tab[2]=6; //affectation de la valeur 6 au troisiéme élément du tableau
    tab[3]=7; //erreur,indice tableau hors borne.

  4. #4
    Membre actif

    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 239
    Points
    239
    Par défaut
    Il y a déjà trop d'éléments dans ton tableau...
    La déclaration se fait ainsi :
    EDIT: oops il faut répondre vite ici

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Ton tableau posséde 3 éléments(type int ici).Tu essaies cependant de l'initialiser avec 4 éléments(0,1,2,3).
    Oui désolé, c'est une faute de frappe.

    Pour affecter une valeur à un élément dans un tableau on peut utiliser l'indice de ce dernier.
    Justement c'est ce que je ne veux pas faire. Je cherche à assigner toutes les valeurs en une seule fois et en une seule ligne.

  6. #6
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Justement c'est ce que je ne veux pas faire. Je cherche à assigner toutes les valeurs en une seule fois et en une seule ligne.
    En C ce n'est à priori pas possible,mais je peut me tromper.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Il n'y a aucune solution ?

  8. #8
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    La solution soit manuellement soit une boucle si possible.

    Nas'

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par jphi5
    Il n'y a aucune solution ?
    Tu peux copier un tableau 'de référence' dans un tableau fraichement crée avec memcpy().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    /* tableau de reference (lecture seule) */
    static const int z[] = {1,2,3,4};
     
    ...
     
    {
       int a[sizeof z / sizeof *z];
     
       memcpy (a, z, sizeof a); /* <string.h> */
     
    }
    Pose des questions si tu ne comprends pas.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par jphi5
    Il n'y a aucune solution ?
    Tu peux copier un tableau 'de référence' dans un tableau fraichement crée avec memcpy().
    Pkoi faire ? dans quelle situation on aura besoin de ce truc??

    Citation Envoyé par Emmanuel Delahaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    /* tableau de reference (lecture seule) */
     
    static const int z[] = {1,2,3,4};
     
    ...
     
    {
       int a[sizeof z / sizeof *z];
     
       memcpy (a, z, sizeof a); /* <string.h> */
     
    }
    sizeof z ---->donne la taille du tableau
    sizeof *z---->???????????

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par rbanana
    sizeof z ---->donne la taille du tableau
    sizeof *z---->???????????
    La taille d'un élément en bytes. Le rapport entre les deux donne le nombre d'élements.

  12. #12
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Jconnaissais pas sizeof * ...
    Chavais pas non plus que les parentheses étaient facultatives

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Gruik
    Jconnaissais pas sizeof * ...
    Chavais pas non plus que les parentheses étaient facultatives
    Bah, si tu savais le nombre de choses que je ne sais pas...

  14. #14
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    pourquoi ces 2 attributs?

    et pourquoi en global?

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par seriousme
    pourquoi ces 2 attributs?

    et pourquoi en global?
    static pour réduire la portée au module courant. (vieux reflexe)
    const parce que seul un acces en lecture nous intéresse.
    global (mais limité au module par static), parce que ça peut peut être servir dans plusieurs fonctions (en lecture seule, c'est pas dangereux). Mais c'est vrai que c'est discutable, car ça crée des dépendances...

  16. #16
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Merci de ces précisions.(je savais pas que static réduisait la portée)

Discussions similaires

  1. [WD-2010] Selectionner plusieurs cellules d'un tableau
    Par mélii dans le forum VBA Word
    Réponses: 2
    Dernier message: 03/08/2014, 20h54
  2. [XL-2007] Je voudrais sélectionner plusieurs cellules en même temps
    Par ChNoirhomme dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/07/2014, 06h20
  3. Faire un couper - coller de plusieurs cellules d'un tableau
    Par absot dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 08/06/2014, 20h41
  4. [Débutant] Supprimer plusieurs cellules en même temps
    Par rob408231 dans le forum MATLAB
    Réponses: 3
    Dernier message: 01/11/2010, 17h08
  5. Réponses: 9
    Dernier message: 17/04/2004, 16h32

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