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 :

Vecteur en dynamique


Sujet :

C++

  1. #1
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut Vecteur en dynamique
    Bonjours à tous,

    Voilà, j'ai déclaré un vecteur en dynamique (pointeurs) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int *Vect = new int[150] ;
    ...
    ...
    ...
    Comment fait-on pour avoir le nbre d'élements de ce vecteur en mode execution qui est de "150" en utilisant * ou &, ect ...

    J'ai essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    nbreel = Vect ; 
    ...
    nbreel = *Vect ; 
    ...
    nbreel = (*Vect)/sizeof(int) ; 
    ...
    Pouvez-vous m'aidez svp.

    Merci d'avance.

    @+

  2. #2
    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
    Tu ne peux pas, utilise plutôt std::vector.

  3. #3
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Oui bien sûr, mais je veux aussi l'appliquer pour les Matrice de 2 à n dimensions.

    @+

  4. #4
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Tu ne peux pas.
    Enfin tu peux toujous te coltiner une variable taille par vecteur.
    Seulement std::vector te mache le boulot
    Pour les matrices, regarde du côté de boost : http://boost.org/libs/libraries.htm#Math
    Surtout µBlas

  5. #5
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    je pense que je me suis mal exprimé.

    En utilisant les pointeurs je cherche à calculer la taille d'un vecteur ou d'une matrice déjà déclaré(e) en mode dynamique.

    Merci de m'aider svp.

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    À partir d'un pointeur, il n'est pas possible de savoir si ce pointeur pointe vers un tableau ni le nombre d'éléments du tableau.

  7. #7
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Alors, àpartir d'un pointeur sur un tableau, peut-on calculer le nbre d'élement de ce tableau.

    merci

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Non.
    Il faut stocker la taille séparément lors de la création.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    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 kmaniche
    Alors, àpartir d'un pointeur sur un tableau, peut-on calculer le nbre d'élement de ce tableau.
    est un pointeur vers int. On ne peut pas dire si ça valeur a été allouée avec p=new int(42), p = new int[42], p = (int*)malloc(sizeof(int)) ou p = (int*) malloc(42 * sizeof(int)) ni meme p = (int*)malloc(42).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    typedef int tab[42];
    tab *p;
    est un pointeur vers un tableau de int. Oui, on sait que ce tableau comporte 42 entiers. Mais on ne peut pas déterminer s'il a été alloué avec p = new tab, p = new tab[36], ...

Discussions similaires

  1. Vecteur creux dynamique
    Par cvanaret dans le forum Caml
    Réponses: 2
    Dernier message: 18/12/2014, 09h23
  2. Template variadique sur vecteur dynamique
    Par PilloBuenaGente dans le forum Langage
    Réponses: 8
    Dernier message: 05/08/2013, 18h04
  3. problème lors de l'utilisation vecteur dynamique
    Par info_sara dans le forum C++
    Réponses: 9
    Dernier message: 26/04/2012, 16h11
  4. Jeu de loto & vecteurs dynamiques
    Par popy67 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 04/01/2009, 11h35
  5. Réponses: 2
    Dernier message: 01/03/2007, 18h05

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