background preloader

Langage C

Facebook Twitter

Doubly-Linked Lists. Description The GList structure and its associated functions provide a standard doubly-linked list data structure.

Doubly-Linked Lists

Each element in the list contains a piece of data, together with pointers which link to the previous and next elements in the list. Using these pointers it is possible to move through the list in both directions (unlike the singly-linked GSList, which only allows movement through the list in the forward direction). The double linked list does not keep track of the number of items and does not keep track of both the start and end of the list.

If you want fast access to both the start and the end of the list, and/or the number of items in the list, use a GQueue instead. The data contained in each element can be either integer values, by using one of the Type Conversion Macros, or simply pointers to any type of data. List elements are allocated from the slice allocator, which is more efficient than allocating elements individually. There is no function to create a GList. Functions. Wolf: Enseignement(Teaching) C. Les piles et les files. La saisie de texte sécurisée. Notes. Saisie de données par un opérateur (stdin) Introduction Il est courant en C standard d'utiliser le flux stdin pour acquérir des données en provenance d'un opérateur.

Notes

(Mode conversationnel). On admettra pour la suite que stdin est connecté à la partie 'clavier' d'un périphérique console. Le langage C offre plusieurs fonctions permettant de lire des données sur un flux en général et sur stdin en particulier. fgetc() getc() getchar() gets() scanf() fgets() fgetc(), getc(), getchar() Ces trois fonctions extraient un caractère du flux entrant (pour getchar(), ce flux est stdin). Par contre, ces fonctions peuvent être utilisées pour construire des fonctions d'entrées de plus haut niveau plus ou moins spécialisées. Détails de fonctionnement de fgetc() gets() Pour des raisons évidentes de sécurité (pas de limitation du nombre de caractères saisis), la fonction gets() ne devrait pas être utilisée.

Scanf() fgets() Cette fonction est parfaitement adaptée à la saisie d'une ligne, (même de 1 caractère). TD/TP Programmation c. Akka Zemmari : Enseignements. Programmation C/Pointeurs. Un livre de Wikilivres.

Programmation C/Pointeurs

Dans cette section, nous allons présenter un mécanisme permettant de manipuler les adresses, les pointeurs. Un pointeur a pour valeur l'adresse d'un objet C d'un type donné (un pointeur est typé). Ainsi, un pointeur contenant l'adresse d'un entier sera de type pointeur vers entier. Usage et déclaration[modifier | modifier le wikicode] L'opérateur & permet de connaitre l'adresse d'une variable, on dira aussi la référence. Un pointeur occupera habituellement toujours la même taille (occupera la même place en mémoire), quelque soit l'objet se trouvant à cet emplacement. Int i; printf("%p\n", &i); Pouvoir récupérer l'adresse n'a d'intérêt que si on peut manipuler l'objet pointé.

T * pointeur, * pointeur2, /* ..., */ * pointeurN; Déclare les variables pointeur, pointeur2, ..., pointeurN de type pointeur vers le type T. /* Ce code contient une déclaration volontairement confuse */int * pointeur, variable; L'arithmétique des pointeurs[modifier | modifier le wikicode] Building a linked list in C. Initiation au langage C. Programmation en C. ANSI_C.