Gestion de la mémoire dynamique dans uCGUI

La zone du tas pour la mémoire dynamique /* Définition de l'union pour la zone du tas */ typedef union { /* Permet d'accéder au tas par blocs de 4 octets ou octet par octet */ int tableauHeap[GUI_ALLOC_SIZE / 4]; /* Assure un alignement correct */ U8 octetsHeap[GUI_ALLOC_SIZE]; } GUI_HEAP; /* Données représentant le tas */ GUI_ME ...

Publié le 14 juin à 00h09

Implémentations algorithmiques fondamentales en C

Cet article présente plusieurs implémentations courantes d'algorithmes et de structures de données en langage C, souvent rencontrées dans des examens de programmation. Addition de grands entiers #include <stdio.h> #include <string.h> #define MAX_TAILLE 20 void inverser_chaine(char *chaine) { int debut = 0, fin = strlen(chaine) ...

Publié le 13 juin à 21h42

Conception d'une balance électronique intelligente basée sur STM32

Ce projet détaille la réalisation d'une balance électronique intelligente articulée autour d'un microcontrôleur STM32F103C8T6. Le système intègre des fonctionnalités de pesée précise, d'affichage dynamique via écran OLED, de communication Bluetooth pour le contrôle à distance et d'alertes sonores. Architecture matérielle Le système repose sur l ...

Publié le 13 juin à 07h34

Concepts et implémentation d'une liste chaînée simple en C

Les tableaux dynamiques (listes séquentielles) sont des structures de données fondamentales, mais ils présentent certaines limites : L'insertion ou la suppression en tête ou au milieu nécessite un décalage des éléments, ce qui donne une complexité temporelle de O(N). Le redimensionnement implique l'allocation d'un nouvel espace, la copie des d ...

Publié le 12 juin à 00h43

Maîtriser les spécificateurs de format en C pour l'embarqué

Les spécificateurs de format sont essentiels pour contrôler la manière dont les données sont affichées ou interprétées par les fonctions d'entrée/sortie, notamment printf et scanf en C. Ils permetttent de spécifier le type de données, l'alignement, la largeur et la précision de la sortie. Formats de base %d : Entier décimal signé. %o : Entier ...

Publié le 10 juin à 18h08

Exercices Pratiques : Manipulation de chaînes et de pointeurs en C

Questions à compléter Dans un programme 64 bits : La valeur de sizeof("\num\\\t") est de 6. La valeur de strlen("\num\\\t") est de 5. La valeur de sizeof("\num\\\t" + 1) est de 8 (car c'est la taille d'un pointeur en 64 bits). La valeur de strlen("\num\\\t" + 1) est de 4. Questions à choix multiples Lor ...

Publié le 9 juin à 22h02

Optimisation de l'intégration des dispositifs dans les systèmes domotiques à l'aide de fichiers de configuration INI

Pour gérer efficacement les périphériques dans un environnement domotique, l'utilisation de fichiers de configuration INI offre une méthode modulaire. Cet approche permet d'ajouter ou de modifier des dispositifs sans recompiler le code source, simplifiant ainsi la maintenance et l'extensibilité du système. Préparation de l'environnement Intégre ...

Publié le 9 juin à 21h41

Exercices sur la recherche binaire et leurs solutions en C

L'algorithme de recherche binaire standard peut retourner n'importe lequel des éléments correspondants lorsque plusieurs occurrences existent. Pour garantir le retour de la première occurence, une modification est nécessaire. En utilisant le tableau défini par int donnees[8] = { 1, 2, 2, 2, 5, 6, 8, 9 };, l'implémentation suivante ajuste la log ...

Publié le 8 juin à 06h41

Représentation des données en mémoire informatique

Le stockage des entiers en mémoire repose sur la représentation binaire. Pour les nombres positifs, le code direct (sign-magnitude), le complément à un et le complément à deux sont identiques. Pour les nombres négatifs, ils diffèrent : le code direct corerspond à la traduction binaire du nombre, le complément à un inverse tous les bits sauf le ...

Publié le 6 juin à 16h20

Programmes Quine : L'auto-réplication du code source en C

Un programme Quine est un programme qui produit une copie exacte de son propre code source lors de son exécution, sans utiliser d'opérations d'entrée/sortie pour lire le fichier source. Voici un exemple fondamental en langage C : #include <stdio.h> char selfCode[]="#include <stdio.h>%cchar selfCode[]=%c%s%c;%cint main(){printf( ...

Publié le 6 juin à 01h37