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 :

Initialiser un tableau


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2003
    Messages : 59
    Par défaut Initialiser un tableau
    Bonjour,

    J'essaye d'initialiser 2 tableaux dans une methode.
    Un en lui attribuant des valeurs et l'autre en ce servant des valeurs du premiers.


    Je bloque..

    Merci

    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
    30
    31
    32
     
    struct Myarray
            {
     
                public int[] Index;
                public int[,,,,] PrivateArray;
     
                public void Init()
     
                {
                    Index = new int[5];
                    PrivateArray = new int[Index[0], Index[1], Index[2], Index[3], Index[4]];
                }
     
            }
     
     
            static void Main(string[] args)
            {
     
                Myarray Sample = new Myarray();
     
     
                Sample.Index[0] = 2;
                Sample.Index[1] = 5;
                Sample.Index[2] = 3;
                Sample.Index[3] = 4;
                Sample.Index[4] = 2;
     
                Sample.Init();
     
            }

  2. #2
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Ce que tu essaye de faire me semble bien étrange

    Tout d'abord tu n'instancie pas ton tableau index avant de l'utiliser et tu aura forcément une erreur a l'execution

    Pourquoi aussi passer par une struct et pas une classe

    Par ailleur, En déclarant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public int[,,,,] PrivateArray;
    Tu déclare un tableau a 5 dimension et non un tableau de 5 élément

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2003
    Messages : 59
    Par défaut
    C'est mon prof qui nous a demandé de le faire avec struct.

    J'ai essayé d'instancier le tableau mais on dirait qu'on peut pas dans struct..

    Par ailleur, En déclarant


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public int[,,,,] PrivateArray;
    Tu déclare un tableau a 5 dimension et non un tableau de 5 élément
    Oui il sera rempli avec les valeurs du tableau Index..

  4. #4
    Membre chevronné Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Par défaut
    Salut,

    tu as la méthode CopyTo pour ça. Et Olibara a raison, est-ce qu'un tableau à 5 dimensions est vraiment ce que tu veux faire ? Ca m'étonnerait...

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Mercenaire Voir le message
    Bonjour,

    J'essaye d'initialiser 2 tableaux dans une methode.
    Un en lui attribuant des valeurs et l'autre en ce servant des valeurs du premiers.
    Précise ton besoin fonctionnel, car, déjà, l'utilisation d'un tableau à 5 dimensions fait plutôt penser à un sérieux problème de conception. (à moins que tu travailles avec des calculs sur des espaces d'un genre assez particulier - style un type exotique de variété riemannienne - , mais j'ai comme un doute là).

  6. #6
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Par défaut
    même si, peut être, c'est trop tard pour répondre à ton prof mais çà en vaut la peine de savoir ses fautes.

    sans rentrer dans la logique de ton programme voici la correction qu'il faut pour que sa ne bloc plus:
    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
           struct Myarray
           {
     
               public int[] Index;
               public int[, , , ,] PrivateArray;
     
               public void Init()
               {
                    // Index = new int[5]; ----> à faire dans Main() avant de pouvoir accéder aux cellules du tableau
                    PrivateArray = new int[Index[0], Index[1], Index[2], Index[3], Index[4]];
               }
     
            }
     
            static void Main(string[] args)
            {
     
               Myarray Sample = new Myarray();
     
               Sample.Index = new int[5];
               Sample.Index[0] = 2;
               Sample.Index[1] = 5;
               Sample.Index[2] = 3;
               Sample.Index[3] = 4;
               Sample.Index[4] = 2;
     
               Sample.Init();
            }
    alors c'est pas qu'on ne peut pas instancier un tableau dans un struct.
    et je dirai que tu es en train d'utiliser les valeurs du premier tableau pour régler la dimension de chaque dimension du second tableau non pas pour initialiser ses cellules; sinon il faut revoir tout et utiliser un CopyTo par exemple.

    enfin, après tous çà, il faut dire que point de vue structure du programme, algorithme et visibilité des champs comme PrivateArray il fau y repenser.
    te décourage pas et soit assidu

    pense à la balise
    Bon courage

Discussions similaires

  1. Réponses: 35
    Dernier message: 14/02/2006, 18h57
  2. Réponses: 7
    Dernier message: 31/01/2006, 22h34
  3. initialiser un tableau 2D dans le main
    Par miminou dans le forum C++
    Réponses: 5
    Dernier message: 20/12/2005, 10h35
  4. [LG] Jeu mémory : initialisation de tableau
    Par DarkLords dans le forum Langage
    Réponses: 1
    Dernier message: 19/10/2005, 15h13
  5. Problème d'initialisation variable tableau
    Par HeZiX dans le forum Langage
    Réponses: 3
    Dernier message: 08/06/2005, 16h30

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