Urgent à propos du langage c!!!!

kadikazo -  
 Guki -
Bj à tous
Voila, j'ai rencontré dans un code source d'un programme en langage C la déclaration : (Void *)(0) et j sais pas de quoi il sagit.

est-ce que quelqu'un a des informations la dessus? vraiment c trés urgent!
Salutation et merci à tous!

1 réponse

  1. Guki
     
    Salut!

    Ne presse jamais les gens tu verras qu'ils ont un meilleur rendement déstressés. ;o)

    (type)valeur est appelé un "cast" cela permet de convertir des types.

    exemple:

    int n;
    char c;

    /* 64 est contenu dans un entier 16 bit */

    n = 64

    /* 64 est contenu dans un entier 8 bit */

    c = (char)n;

    Affecter 16 bit dans un espace 8 bit engendrerait un dépassement mémoire c'est pourquoi on "cast".

    (void *)0 signifie la conversion de la valeur 0 (probablement "int") dans un pointeur "void" c'est à dire le pointeur contient une adresse nulle.

    NB: Un "cast" alloue une variable temporaire dont la portée est locale donc il faut affecter une autre variable pour pouvoir l'utiliser plus loin dans le code.
    0