Partage
  • Partager sur Facebook
  • Partager sur Twitter

Questions fonction de type char *

Sujet résolu
    24 juin 2017 à 14:38:16

    Bonjour, 

    Je suis débutant en C et j'aimerai comprendre l’utilité d'une fonctions de type char * ou int *. Mon code permet d'obtenir le miroir d'une chaîne de caractères. Lorsque ma fonction miroir est de type char et non de type char *, j'ai le warning suivant : "return makes integer from pointer without a cast". Pourquoi faut-t-il caster cette fonction ? Est-ce que c'est parce que la fonction retourne T, qui est une chaîne de caractères ? Si c’était un tableau d'entier, je devrais utiliser int * ?

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    char* miroir(char *T, int i);
    
    int main()
    {
        char ch[100];
        printf("Veuillez entrer votre cdc : \n");
        fgets(ch, 100, stdin);
        printf("%s", miroir(ch, 0));
        return 0;
    }
    
    char* miroir(char *T, int i)
    {
        int l, h;
        char temp;
        l = strlen(T);
        h = l / 2;
    
        if (i < h)
        {
            temp = T[i];
            T[i] = T[l - 2 - i];
            T[l - 2 - i] = temp;
            return miroir(T, i + 1);
        }
        else
            return T;
    }
    



    Merci en avance

    • Partager sur Facebook
    • Partager sur Twitter
      24 juin 2017 à 14:45:04

      Hello, ta fonction retourne T, qui est de type char *. Donc ça paraît logique qu'elle retourne un objet de type char * et pas autre chose, non ?

      -
      Edité par ASW_ 24 juin 2017 à 14:47:47

      • Partager sur Facebook
      • Partager sur Twitter
        24 juin 2017 à 14:47:48

        char et char* sont deux choses bien différente.

        char est un type entier. Une variable de ce type est particulièrement utilisée pour contenir un et un seul caractère.

        char* est un pointeur sur char, Une variable de ce type sert à contenir l'adresse d'une variable de type char. Il est souvent utiliser pour pointer sur les chaînes de caractère (tableau de char terminé par un '\0')

        • Partager sur Facebook
        • Partager sur Twitter

        Questions fonction de type char *

        × 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