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 :

Question sur les pointeurs


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 35
    Par défaut Question sur les pointeurs
    Bonjour tout le monde,
    Pouvez vous m'expliquer quand l'utilisation des pointeurs a une utilité concernant le gain en temps d'execution?

    Aussi, concernant la lecture d'un fichier de données soit disant 200col x 500lignes, est ce que l'utilisation des pointeurs accélérera l'execution et nous fera gagner du temps?

    merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    les pointeurs n'ont rien de magique, d'extraordinaire ou de caché.
    Ce ne sont que des allias vers un type de données, vers une zone mémoire qui contient les données.

    Tes réponses n'ont aucune réponse absolue.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 35
    Par défaut
    oui, je sais que y a rien de magique mais pour un débutant c'est le cas,,,,je veux just une petite explication sur leurs utilité puisque je trouve souvent que les gens disent qu'avec les pointeurs ça va vite!

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Peut-être que cette FAQ est appropriée : http://cpp.developpez.com/faq/cpp/?p...FERENCE_handle

    Quant à l'utilité... ça dépend de l'algo, du code, de ce que l'on souhaite réaliser.
    Bref ta question n'attend aucune réponse.
    Non, un pointeur ne fait pas aller plus vite un programme dans l'absolu.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre expérimenté Avatar de Rewpparo
    Homme Profil pro
    Amateur
    Inscrit en
    Décembre 2005
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 170
    Par défaut
    Il y a une généralité qu'on peut expliquer je pense. Quand tu veux passer une structure de données à une fonction, tu peux la passer soit par valeur, soit par pointeur/référence.

    Si tu la passe par valeur, ta structure de données sera copiée une variable locale à la fonction appelée. Non seulement la copie prend du temps (surtout si la structure de données contient beaucoup de données), mais il n'est parfois pas souhaitable de voir deux instances de ta structure de donnée. De plus, il faut que la copie se passe bien, et donc avoir un constructeur de copie la plupart du temps.

    Si tu la passe par pointeur ou référence, la variable n'est pas copiée, tu accède grâce au pointeur directement aux données qui étaient dans la fonction appelante. Il convient alors de passer un const pointeur (ou référence) si tu ne veux pas que les changements faits dans la fonction appelée affecte les données de la fonction appelante. C'est souvent souhaitable, mais ca demande un minimum de rigueur, notamment sur les const, pour éviter que ca ne te pète à la figure.

    Je parle ici de structure de données avec un minimum de complexité. Pour une simple struct avec trois champs, autant la passer par valeur. Pour les types de base, il vaut toujours mieux les envoyer par valeur, sauf cas particulier. En effet la taille d'un pointeur est de 64 (ou 32) bits, alors que la taille d'un char par exemple est de 8 bits, donc transmettre un char prend au pire plus de temps qu'un pointeur. Même le double fait 64 bits, la taille d'un pointeur sur un système moderne.

    J'espère avoir apporté au moins un élément de réponse.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Je suis d'accord avec toi, sauf sur ce passage
    Citation Envoyé par Rewpparo Voir le message
    Je parle ici de structure de données avec un minimum de complexité. Pour une simple struct avec trois champs, autant la passer par valeur.
    Amha, il vaut mieux toujours passer un const reference, sauf si l'on a besoin d'une copie.
    Ca évite d'avoir à créer (puis détruire) un objet, même simple.
    Ca évite d'avoir des surprises sur l'objet copié, constructeur par copie mal défini, objet qui a évolué dont on a oublié de faire évoluer le constructeur par copie.
    Et après tout, on veut travailler sur cet objet, alors on fournit cet objet, le const servant à s'assurer de son intégrité.

    Citation Envoyé par Rewpparo Voir le message
    Pour les types de base, il vaut toujours mieux les envoyer par valeur, sauf cas particulier. En effet la taille d'un pointeur est de 64 (ou 32) bits, alors que la taille d'un char par exemple est de 8 bits, donc transmettre un char prend au pire plus de temps qu'un pointeur. Même le double fait 64 bits, la taille d'un pointeur sur un système moderne.

    J'espère avoir apporté au moins un élément de réponse.
    Effectivement, ce conseil vaut aussi pour un retour de fonction.
    Et du coup on s'aperçoit que les paramètres et retour de type de base n'ont pas besoin d'être const à priori.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

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

Discussions similaires

  1. Question sur les pointeurs génériques
    Par mikedavem dans le forum C
    Réponses: 16
    Dernier message: 24/05/2006, 11h56
  2. question sur les pointeurs
    Par jd.baculard dans le forum Langage
    Réponses: 3
    Dernier message: 18/03/2006, 02h30
  3. [Debutant] Nouvelle question sur les pointeurs
    Par etiennegaloup dans le forum Débuter
    Réponses: 3
    Dernier message: 11/01/2006, 09h55
  4. Question sur les pointeurs.
    Par Chrisemi dans le forum C++
    Réponses: 5
    Dernier message: 28/10/2005, 23h47
  5. questions sur les pointeurs
    Par Hyoga dans le forum C++
    Réponses: 17
    Dernier message: 08/01/2005, 23h25

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