passage des arguments en c
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

passage des arguments en c



  1. #1
    nizarov

    passage des arguments en c


    ------

    salut tout le monde je veut savoir la différence en langage c entre passage des paramètres d'une fonction par valeurs et le passage des variables par pointeurs et merci .

    -----

  2. #2
    ProgVal

    Re : passage des arguments en c

    Bonjour,

    Lorsque tu passes les paramètres par valeur, le programme effectue une copie des données, ce qui prend du temps et de la mémoire.
    Lorsqu'on les passe par pointeur, rien n'est copié, puisque l'on ne fait que passer une adresse (32 ou 64 bits pour les PC actuels, ça prend quand même beaucoup moins de place que le contenu d'une variable )

    Cordialement,
    ProgVal

  3. #3
    bzh_nicolas

    Re : passage des arguments en c

    De plus le passage par pointeur te permettra de modifier la valeur de la variable pointée par le pointeur, ce qui n'est pas le cas d'un passage par valeur.

  4. #4
    Jackyzgood

    Re : passage des arguments en c

    Je tiens a apporter une petite précision, lorsqu'on passe un pointeur en argument d'une fonction il y a bien une copie qui est faite, la copie du pointeur. Il faut donc faire attention si jamais tu veux allouer dynamiquement un tableau dans une autre fonction, car si tu fais :

    Code:
    void fonction_allocation(int *tableau, int taille)
    {
    tableau = malloc(taille * sizeof(int));
    }
    C'est la copie de ce pointeur qui va subir la fonction malloc, non pas le pointeur que tu as envoyé.
    si c'est idiot mais que ca marche, c'est que ce n'est pas idiot

  5. A voir en vidéo sur Futura
  6. #5
    invite025015c2

    Re : passage des arguments en c

    il suffit de faire, il me semble :

    Code:
    *tableau = malloc(taille * sizeof(int));

  7. #6
    bzh_nicolas

    Re : passage des arguments en c

    Ca ne suffira pas, pour pouvoir faire une allocation dynamique dans une fonction (ou une méthode), il faut pourvoir modifier le pointeur et donc passer en paramètre un pointeur sur le pointeur en question.

  8. #7
    nizarov

    Re : passage des arguments en c

    Ok merci beaucoup

  9. #8
    invite444e947d

    Re : passage des arguments en c

    Bonjour

    Tournez vous plutôt vers le C++, le passage s'en trouve de beaucoup simplifié car le C++ a introduit le passage par référence qui n'est rien d'autre qu'un passage par pointeur mais caché à l'utilisateur

    Avec le passage des arguments par référence on écrit sa fonction comme pour un passage par valeur.

    Pas trop se prendre la tête avec la place mémoire prise par les arguments, tout d'abord en C on ne passe pas des tableaux par valeur et pour le reste, quelques byte c'est peanuts en rapport aux tailles mémoire dont sont équipés les PC

    Quand à l'allocation dynamique, en C++
    Exemple de variable dynamique
    t
    AnsiString var=new AnsiString; pour déclarer une variable de type chaîne de longueur variable

    Et aussi

    AnsiString AString, BString,CString;

    puis

    CString = AString + BString;

    Et CString contient la concaténation de AString et BString

    Quand même beaucoup plus simple que jouer avec "malloc" et la production des programmeurs s'en trouve vachement amplifiée

  10. #9
    ProgVal

    Re : passage des arguments en c

    aflagothier: le C et le C++ ne sont pas fait pour faire exactement la même chose, c'est pour ça que dans certains cas, on privilégie le C.

  11. #10
    ventilopomme

    Re : passage des arguments en c

    Citation Envoyé par ProgVal Voir le message
    aflagothier: le C et le C++ ne sont pas fait pour faire exactement la même chose, c'est pour ça que dans certains cas, on privilégie le C.
    tout a fait d'accord avec toi et en plus au niveau de l'exécutable c'est un peu plus lourd
    si on veut modifier l'adresse contenu dans un pointeur forcément l'argument est de type ** du style
    void modification(int **ptr)
    {
    *ptr=malloc(sizeof(int));
    }

Discussions similaires

  1. Il me faut des arguments scientifiques contre une PAC
    Par spleenatis dans le forum Habitat bioclimatique, isolation et chauffage
    Réponses: 153
    Dernier message: 26/02/2010, 16h00
  2. Les arguments des contre rechauffement climatique
    Par invite89d5765e dans le forum Environnement, développement durable et écologie
    Réponses: 20
    Dernier message: 23/06/2008, 11h12
  3. Les arguments CONTRE la montée des océans
    Par inviteed383ec9 dans le forum TPE / TIPE et autres travaux
    Réponses: 9
    Dernier message: 25/01/2008, 15h53
  4. Démonstration : propriétés des arguments (nombres complexes)
    Par sperca dans le forum Mathématiques du supérieur
    Réponses: 9
    Dernier message: 21/09/2007, 19h19
  5. Arguments pour forcer le passage en Terminale
    Par invitee9d79d0f dans le forum Orientation avant le BAC
    Réponses: 6
    Dernier message: 19/06/2007, 18h23