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 :

Erreur de types


Sujet :

C

  1. #21
    Membre éclairé Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Par défaut
    Relis mon post

    edit: j'avais édité, mais vous êtes trop rapide

  2. #22
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Commentaires et critiques :
    Un type char [] est un tableau de caractères.
    caractères n'est pas un type de données en C. On doit dire "Un type char [] est un tableau de char".
    Un bloc mémoire est alloué et se trouve à l'adresse de la variable - le premier caractère.
    Un bloc mémoire est alloué et se trouve à l'adresse de la variable qui est celle du premier char du tableau (pour être précis, les types sont différents : la variable est un tableau, son adresse est l'adresse d'un tableau donc de type : char(*)[] . Le premier char du tableau a une adresse du type 'adresse d'un char' : char*).
    Qui est différent de char *, un pointeur de caractère, qui pointe vers une adresse normalement de type char.
    C'est différent d'un char*, un pointeur sur char, qui pointe normalement vers un objet de type char
    ou
    C'est différent d'un char*, un pointeur sur char, qui contient normalement l'adresse d'un objet de type char
    On peut allouer de la mémoire pour écrire du texte,
    On peut allouer de la mémoire pour stocker du texte,
    mais ce dernier se trouvera à la mémoire alloué, qui est différent de char [] car l'emplacement mémoire est fixe, donc la variable de type char[] lira forcement le tableau de caractères à partir de son adresse et non d'un nouvel emplacement qu'on voudrait lui attribuer
    Je n'ai rien compris.

    Pour stocker du texte, il faut un tableau.

    - si ce texte est constant et connu avant la compilation, le tableau contenant le texte peut avoir été réservé (plutôt que créé) et initialisé par le compilateur et on récupère l'adresse du début de ce tableau que l'on met dans un pointeur (objet permettant de stocker des adresses) comme ici char const *p = "Hello";.

    - le tableau peut être créé par une définition char tab[...]. Par exemple création et initialisation du tableau : char tab[] = "Hello";.

    - le tableau peut être créé par allocation dynamique auquel cas on récupère l'adresse du début du tableau que l'on met dans un pointeur. Reste à remplir le tableau.
    Par exemple création et remplissage du tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     char* p = malloc(6);
     if(p!=NULL)strcpy(p,"hello");

  3. #23
    Membre éclairé Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Par défaut
    Oui c'est ce que j'ai dis

    -- j'y arrive vraiment pas dis-donc, faut toujours qu'il y ait une phrase pas compréhensible

    bon, plus sérieusement, c'est bon j'ai compris, c'est juste que j'utilise pas les bons termes

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [VB]erreur de type
    Par amel95140 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/01/2006, 15h51
  2. Réponses: 1
    Dernier message: 12/12/2005, 04h39
  3. [LG] Erreur de type incompatible dans assignment
    Par Tuxico dans le forum Langage
    Réponses: 4
    Dernier message: 03/12/2005, 22h06
  4. erreur Data type mismatch in criteria expression
    Par bachilbouzouk dans le forum ASP
    Réponses: 3
    Dernier message: 20/04/2005, 12h48
  5. [Agents services] Erreur de types imcompatibles
    Par ApollloCrid dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 14/04/2005, 20h47

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