Partage
  • Partager sur Facebook
  • Partager sur Twitter

Structure recup valeur dans une autre fonction

Sujet résolu
    24 mars 2022 à 17:41:35

    Bonjour !

    Petite question, je sais qu'on peut utiliser une structure avec des int dans mon cas, ou je vais modifier la valeur dans une fonction, puis dans l'autre avoir la valeur modifié, (sans vouloir utiliser de return)

    hors ca ne marche pas dans mon code ci dessous, si quelqu'un peut m'éclairer ca serait super, merci ! 

    Si je printf dans la fonction ft_nb_line je vais avoir les bonnes valeur mais si je printf dans ma fonction check_size_map seulement des 0

    int main(int ac, char **av)
    {
       t_variable t_var;
    
       t_var.nb_line = 0;
       t_var.nb_caracter = 0;
       ft_check_size_map(av[1], &t_var)
       return (0);
    }
    
    int ft_nb_line(char  *map, t_variable *t_var)
    {
        char *str;
        int fd;
        int stop;
    
        stop = 0;
        fd = open(map, O_RDONLY);
        str = get_next_line(fd);
        t_var->nb_caracter = ft_strlen(str);
        while (str)
        {
            if (t_var->nb_caracter != ft_strlen(str))
                stop = 1;
            t_var->nb_line++;
            free(str);
            str = get_next_line(fd);
        }
        close (fd);
        if (t_var->nb_line < 3  stop == 1  t_var->nb_caracter < 6)
            return (FAILURE);
        return (SUCCESS);
    }
    
    int ft_check_size_map(char *arg, t_variable *t_var)
    {
        printf("LINE = %d\n", t_var->nb_line);
        printf("CHARA = %d\n", t_var->nb_caracter);
        if (ft_nb_line(arg, t_var) == FAILURE)
            return (FAILURE);
        return (SUCCESS);
    }



    -
    Edité par NicolasArty 24 mars 2022 à 18:03:10

    • Partager sur Facebook
    • Partager sur Twitter
      24 mars 2022 à 17:55:29

      Ton code ne compile pas !

      t_variable semble être un type puisque tu l'utilise dans ton code comme tel alors la ligne 3 m’interroge ? Du coup, je n'ai pas été voir plus loin !

      Le mieux c'est que tu nous montre la définition de t_variable. Et que tu poste un code qui compile !

      • Partager sur Facebook
      • Partager sur Twitter
      ...
        24 mars 2022 à 18:01:12

        Oui j'ai corrigé y'a pas de =, j'ai écris le main a la main sans faire attention

        La structure de mémoire : 

        typedef struct s_variable
        {
           int nb_line;
           int nb_caracter;
        }    t_variable;



        -
        Edité par NicolasArty 24 mars 2022 à 18:03:18

        • Partager sur Facebook
        • Partager sur Twitter
          24 mars 2022 à 18:33:11

          Ça ne compile toujours pas !

          Tu peux expliquer ton if ligne 30, doit y avoir un gros souci ?! 

          Et aussi, il manque un point virgule ligne 7 !

          -
          Edité par rouIoude 24 mars 2022 à 18:34:19

          • Partager sur Facebook
          • Partager sur Twitter
          ...
            24 mars 2022 à 18:40:33

            EDIT

            Its good je suis juste debile, désolé

            -
            Edité par NicolasArty 24 mars 2022 à 18:50:43

            • Partager sur Facebook
            • Partager sur Twitter
              24 mars 2022 à 18:50:45

              Pour que tu testes:
              #include <stdio.h>
              
              struct struuct {
              	int a;
              	int b;
              };
              
              
              void DisplayStruct(struct struuct *s) {
              	printf("s->a=%d, s->b=%d\n",s->a,s->b);
              }
              
              
              void f2(struct struuct *s) {
              	s->a=1;
              	s->b=2;
              }
              
              void f1(struct struuct *s) {
              	DisplayStruct(s);
              	f2(s);
              	DisplayStruct(s);
              }
              
              
              int main(void) {
              	struct struuct s={0};
              	f1(&s);
              	
              	return(0);
              }
              
              • Partager sur Facebook
              • Partager sur Twitter

              On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                24 mars 2022 à 18:52:36

                NicolasArty a écrit:

                En fait il n'y a pas de C sur le choix du code donc forcément il delete des trucs, 

                C'est bien la première fois que je vois ça ! Pourtant il y a un moment que je viens sur le forum !

                Edit : C'est une réponse à un message qui a été édité !

                -
                Edité par rouIoude 24 mars 2022 à 18:54:07

                • Partager sur Facebook
                • Partager sur Twitter
                ...

                Structure recup valeur dans une autre fonction

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown