Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme de cast

jai une erreur de type cast to pointer from integer

    2 juin 2022 à 15:46:06

    Yo la team 

    je suis bloqué sur mon programme. presque tout fonction (ça fonction) mais il reste un warning a la ligne 57 de type 

    "message": "cast to pointer from integer of different size [-Wint-to-pointer-cast]",

    Merci d'avance de vos réponse

    #include<stdio.h>
    #include<string.h>
    #include <stdlib.h>
    
    void ecrireCSV(FILE *,short*, char*, char*, char* );
    
    int main(){
    
            FILE * (countFiles);
            FILE * (identifiantCSV);
            char domaine[100], identifiantServeur[100], MDP[100], domaineExtract[1], identifiantServeurExtract[1], MDPExtract[1], ligne[100], ligneExtract[100];
            int tab[1000], conte, ch;
            unsigned short count = 1;
    
        countFiles = fopen("identifiantCSV.csv", "r");
        if (countFiles == NULL) {
            puts("Erreur lors de l'ouverture du fichier identifiant");
            return -1;
        }
    
        do{
            ch=fgetc(countFiles);
            if(ch == '\n'){
                count++;
            }
        }while( ch != EOF);
    
        fclose(countFiles);
    
        // Génération du fichier CSV
        identifiantCSV = fopen( "identifiantCSV.csv", "a");
        if (identifiantCSV == NULL) {
        printf("Erreur lors de l'ouverture du fichier %s !\n", identifiantCSV);
        return -1;
        }  
    
    
    
    
        printf("ajouter le domaine du serveur a ajouter : ");
        gets(domaine);
    
        printf("ajouter l'idientifiant du serveur a ajouter : ");
        gets(identifiantServeur);
    
        printf("ajouter le mot de passe du serveur a ajouter : ");
        gets(MDP);
    
        printf("le domaine est : %s\nl'identifiant est %s\n le mot de passe est : %s", domaine, identifiantServeur, MDP);
    
    
    
    
    
    
        ecrireCSV(identifiantCSV, (short*)count, domaine, identifiantServeur, MDP);
    
    
    }
    
    
    void ecrireCSV(FILE * identifiantCSV, short * count, char * identifiantServeur, char * domaine, char * MDP) {
        fprintf(identifiantCSV, "%d,%s,%s,%s\n", count, identifiantServeur, domaine, MDP);
    }
    
    

    -
    Edité par NathanGarrido 2 juin 2022 à 16:02:31

    • Partager sur Facebook
    • Partager sur Twitter
      2 juin 2022 à 15:55:18

      // Utilises le bouton code </> du forum pour poster ton code ! (tu peux modifier ton post, lien modifier en haut à droite du post).
      Je n'ai pas regardé en détail mais tu essais d'afficher un pointeur en tant qu'entier ! Je me demande d'ailleurs pourquoi le paramètre est de type pointeur ?
      Des Warnings, il y en a d'autre !
      • Partager sur Facebook
      • Partager sur Twitter
      ...
        2 juin 2022 à 16:04:59

        ok Merci pour l'info de comment poster du code 

        Mais j'ai beau comprendre qu'afficher un pointer en tant qu'entier ne marche pas je ne vois pas comment résoudre mon problème.

        mais merci pour ta réponse 

        • Partager sur Facebook
        • Partager sur Twitter
          2 juin 2022 à 18:49:14

          Ta fonction attend une adresse sur short tu n'as pas besoin de caster quoique ce soit

          &count ??

          Et essaie de remplacer %d dans ton fprintf par %hd pour voir 

          -
          Edité par zvheer 2 juin 2022 à 18:51:07

          • Partager sur Facebook
          • Partager sur Twitter

          yasakani no magatama

            2 juin 2022 à 18:49:48

            Tu envois un entier à ta fonction ! Elle affiche un entier ! Alors pourquoi ne mets tu pas un paramètre de type entier ?

            Au lieu de bricoler avec ton pointeur qui sert à rien et qui est très mal utilisé en plus ! (si tu voulais passer par un pointeur, il ne faut pas caster mais envoyer l'adresse de la variable. mais de toute façon, c'est pas utile pour ce que fait ta fonction).

            • Partager sur Facebook
            • Partager sur Twitter
            ...
              2 juin 2022 à 19:08:06

              De toute façon, à part vraie nécéssité (p.ex. la fonction de comparaison pour qsort() ), on ne cast jamais en C.
              • 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

                3 juin 2022 à 8:45:46

                La fonction gets est supprimée depuis C11 en plus d'être ultra dangereuse. Utilise fgets.
                • Partager sur Facebook
                • Partager sur Twitter

                git is great because Linus did it, mercurial is better because he didn't.

                probleme de cast

                × 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