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 :

tableau 2 dimensions


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 37
    Par défaut tableau 2 dimensions
    salut,
    j'ai un petit problème. j'ai un tableau de 2 dimensions je voudrai lui affecté des valeurs en double[3], mais ça plante pourqoui????

    VolumeGradient[i][0]=Gradient[0];
    VolumeGradient[i][1]=Gradient[1];
    VolumeGradient[i][2]=Gradient[2];

    et c'est comme ça que j'affecte mon tableau et ça plante ???????????
    merci pour vos aides

  2. #2
    Membre extrêmement actif

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

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Tu peux montrer comment tu déclares VolumeGradient et Gradient

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 37
    Par défaut
    Citation Envoyé par hegros
    Tu peux montrer comment tu déclares VolumeGradient et Gradient
    double **VolumeGradient;
    VolumeGradient=new double [NbredesPoints];
    for(int i=0; i<NbredesPoints;i++)
    VolumeGradient[i]=new double [3];

    c'est comme ça que je déclare le tableau VolumeGradient et que je l'alloue.
    pour Gradient c'est un double Gradient[3], tout simplement

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Et à ce moment tu as bien sûr vérifié que i n'est pas supérieur ou égal à NbredesPoints ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 37
    Par défaut
    Citation Envoyé par Laurent Gomila
    Et à ce moment tu as bien sûr vérifié que i n'est pas supérieur ou égal à NbredesPoints ?
    oui bien sûre i n'est pas suprérieur au NbredesPoints.
    Je travail sur des maillages et on utilisant vtk.

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Et tu ne peux pas utiliser le débogueur ? Tu utilises quel IDE / compilo ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 37
    Par défaut
    Citation Envoyé par Laurent Gomila
    Et tu ne peux pas utiliser le débogueur ? Tu utilises quel IDE / compilo ?
    si j'utilise le débogueur le calcul de tous les équations qui sont avant ce commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if(W=1)//Ha(p)=H(p) implique non-feature vertices, donc Va(p)=gradient de volume
    			{
    				--->VolumeGradient[i][0]=Gradient[0];
    				VolumeGradient[i][1]=Gradient[1];
    				VolumeGradient[i][2]=Gradient[2];
    			}
    			else
    			{
    				VolumeGradient[i][0]=signum*Eha[i][0];//calcul de Va
    				VolumeGradient[i][1]=signum*Eha[i][1];
    				VolumeGradient[i][2]=signum*Eha[i][2];
    			}
    sont correctes mais c'est lorsque j'arrive là ou il y a la fléche ça plante????

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Ce ne serait pas plutôt if(W == 1) ?

    c'est lorsque j'arrive là ou il y a la fléche ça plante????
    Et bien ce n'est que le début du débogage, ensuite il faut inspecter la pile d'appels, les variables locales, chercher d'où vient le comportement anormal, ...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 37
    Par défaut
    Citation Envoyé par Laurent Gomila
    Ce ne serait pas plutôt if(W == 1) ? c'est pareil enfin ça donne la même chose "ça change pas grand chose"


    Et bien ce n'est que le début du débogage, ensuite il faut inspecter la pile d'appels, les variables locales, chercher d'où vient le comportement anormal, ...
    ce n'est pas le début de débogage là dans cette ligne je suis à la fin de mon programme donc il y un long calcul avant d'arriver à ce ligne, d'ailleurs tout les calculs sont bons et le valeurs du Gradient[3], et bon alors c'at quoi le problème????? pourquoi l'affectation n'est pas possible???

  10. #10
    Membre extrêmement actif

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

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    if(w=1) est une affectation en gros ca te donne une condition toujours vraie dans ce cas. C'est comme si tu écrivais if(1)

    Pour comparer il faut écrire if(w==1)

  11. #11
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Quand je parlais de début du débogage, ça signifiait simplement que maintenant c'est à toi d'utiliser le débogueur pour remonter jusqu'à l'erreur.
    Moi je veux bien t'aider, mais à partir du moment où il n'y a pas d'erreur flagrante dans ce que tu nous montres et qu'il y a beaucoup de code à côté...

  12. #12
    Membre expérimenté
    Inscrit en
    Décembre 2003
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 272
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    double **VolumeGradient;
    VolumeGradient=new double *[NbredesPoints];
    for(int i=0; i<NbredesPoints;i++)
       VolumeGradient[i]=new double [3];
    Edit : bon visiblement c'est juste une faute de frappe car sinon ça ne compile pas.

    Peux-tu vérifier que VolumeGradient et VolumeGradient[i] sont toujours des pointeurs valables au moment de ton erreur (c'est là que le debogger va te servir) ?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 37
    Par défaut
    je crois savoir d'ou vient le problème.
    on fait le tableau VolumeGradient est un membre de ma classe, et je l'ai mis comme paramétre dans ma méthode pour l'utiliser dans ma duexième méthode dans cet class, et ce qu'il faut pas faire puisque s'il est un membre de ma classe je n'aurai pas besoin de le mettre en paramétre voilà!!! je pense que ça vient de là

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

Discussions similaires

  1. [Collections] lecture tableau 2 dimensions
    Par heloise dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 30/09/2004, 10h49
  2. [tableau à 2 dimensions] association String et float
    Par LoLoSS dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/07/2004, 10h53
  3. Tableau à n dimensions
    Par youb dans le forum MFC
    Réponses: 10
    Dernier message: 13/05/2004, 14h13
  4. Passage d'un tableau à deux dimensions
    Par karl3i dans le forum C
    Réponses: 3
    Dernier message: 20/10/2003, 14h50
  5. Réponses: 23
    Dernier message: 21/08/2003, 07h16

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