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 :

Recuperation de pointeur


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 64
    Par défaut Recuperation de pointeur
    salut,

    J'ai une fonction qui recoit en parametres (entre autre ) un pointeur sur caractere. Il effectue des opération sur ce pointeur(deplacement ). Je souhaite recuperer ce pointeur modifier. Mon problème c'est que la fonction renvoi un int (dont j'ai aussi besoin).

    Comment faire?

    merci de votre aide

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Salut

    Tu peux faire passer un pointeur sur ce pointeur ^^
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Citation Envoyé par Swoög
    Salut

    Tu peux faire passer un pointeur sur le pointeur que tu veux modifier^^
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 64
    Par défaut
    Je ne maitrise pas tres bien les pointeur aurait tu un exemple pour illustrer stp

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Nalido
    Je ne maitrise pas tres bien les pointeur aurait tu un exemple pour illustrer stp
    Ben non. C'est à toi de te creuser la cervelle. SI tu ne sais pas utiliser les pointeurs, relis ton cours. Le principe est de passer l'adresse de la variable à modifier. Pourça, on utilise un paramètre pointeur du même type qui permet d'accéder à la variable alors qu'on est dans la fonction. C'est le B.A. BA du langage C.

    Essaye un truc simple :

    Soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int i = 1;
    inc (&i);
    /* i vaut 2. */
    Comment écrire inc() ?
    • Quelle interface ? (noté 4/10)
    • Quel code, (noté 6/10)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 64
    Par défaut
    J'ai essayer d'appliquer ce que j'ai pu lire ici et là et j'ai deux warning que je ne comprend pas. Et en plus mon programme plante.
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
     
    double essai(int     val01,  double   val02,  char     **ptr) {
           if (Val01 == 1) {
                    return val1;
            }
           switch (*ptr[0]) {
           case 'a':
             val02*= 1;
             ++*ptr;
           case 'b':
             val02*= 2;
             ++*ptr;
           }
     
    return val02;
    }
     
    short essappel( char*   Nal1,
                         char*   Nal2)
    {
        int    r1 = 0;
        int    r2 = 0;    
        double  val1  = 0;
        double  val2 = 0;
        char    *Li1;
        char    *Li2;
        char    *resscan1; 
        char    *resscan2;
     
     
        Li1 =Nal1;
        Li2= Nal2;
     
                r1 = sscanf(Li1, "%le%s", &val1, &resscan1);
                r2 = sscanf(Li2, "%le%s", &val2, &resscan2);  
     
     
                if (r1 == r2) {            
                    val1 = essai(r1, val1, &resscan1);
                    val2 = essai(r2, val2, &resscan2);
                    Li1 = strstr (Li1, &resscan1);
    ...
     
    {
    j'espere que ce bout de code suffit pour illustre mon probleme. Le programme plante lors de l'appel de la focntion essai mais les warning concerne la fonction strchr???

    les warning sont:

    function' : 'const char *' differs in levels of indirection from 'char ** '
    warning C4024: 'strstr' : different types for formal and actual parameter 2

    merci de votre aide

  7. #7
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    un truc qui sert un peu à rien mais bon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int alloc_(void** ptr, unsigned size)
    {
       if((*ptr = malloc(size)) == NULL) return 0;
       return 1;
    }
    pour l'appeller, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int* T;
    if(alloc_(&T, sizeof(int)*5) == 1) printf("Allocation OK");
    else printf("Bad_Alloc");
    ça modifie T et en même temps ça renvoie un entier...
    bon, en même temps cette fonction sert ABSOLUEMENT à rien...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 64
    Par défaut
    merci j'essaye ca on verra ce que ça donne...

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Nalido
    J'ai une fonction qui recoit en parametres (entre autre ) un pointeur sur caractere. Il effectue des opération sur ce pointeur(deplacement ). Je souhaite recuperer ce pointeur modifier. Mon problème c'est que la fonction renvoi un int (dont j'ai aussi besoin).

    Comment faire?
    Un peu comme le deuxième paramètre de strtol() ?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 64
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Un peu comme le deuxième paramètre de strtol() ?
    Exactement.
    En fait je recupere une valeur numerique et un pointeur sur char.
    J'effectue des operations sur la valeur numerique et sur le pointeur.
    La fnction retourne la valeur numerique odifiée mais je ne voit pas comment rcupere mon pointeur modifié??

  11. #11
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Nalido
    Exactement.
    En fait je recupere une valeur numerique et un pointeur sur char.
    J'effectue des operations sur la valeur numerique et sur le pointeur.
    La fnction retourne la valeur numerique odifiée mais je ne voit pas comment rcupere mon pointeur modifié??
    Tu fais exactement comme avec strtol()...

    Essaye et poste le code si tu as un problème.

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/04/2009, 10h24
  2. Réponses: 0
    Dernier message: 22/10/2007, 11h46
  3. Réponses: 7
    Dernier message: 01/06/2007, 17h36
  4. Réponses: 2
    Dernier message: 06/05/2007, 12h52
  5. Réponses: 5
    Dernier message: 12/06/2006, 14h56

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