Jour 3 - Concepts avancés

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
80
Mois de parution
septembre 2015
Domaines


Résumé
Le principal enjeu de cet article consiste à présenter la notion des pointeurs, qui est une clé essentielle pour comprendre le langage C. Nous présenterons leur intérêt, dans la continuité de ce que nous avons déjà vu ainsi que ce qu'il faut savoir pour que cette notion ne reste pas confuse. Parce que sachez-le, si vous faites du C, vous serez obligé de maîtriser les pointeurs.Dans un second temps, nous allons tout naturellement voir ce que ces pointeurs nous permettent de faire : tableaux dynamiques, chaînes de caractères dynamiques, mais également structures.Il s'agit du dernier article qui présente le cœur du C et il est probablement le plus délicat et le plus important.

1. Pointeurs

1.1 Quelques éléments de vocabulaire

Une variable est une association entre un nom (l'identifiant de la variable) et une valeur. Cette valeur est stockée dans un emplacement mémoire dédié. Il s'agit d'un espace continu et ce dernier est réservé une fois pour toutes à la déclaration de la variable et ne change pas pendant sa durée de vie.

Étant donné la nature statique et explicite du typage de C, on connaît la taille de cet emplacement mémoire. Son adresse est l'adresse mémoire du début de cet emplacement continu d'une taille définie et connue. On la nomme aussi sa référence.

Ainsi, si l'on a :

int variable = 42;

L'adresse de variable peut être obtenue et affichée sous la forme hexadécimale ainsi :

printf("adresse de la variable : %p\n", &variable);

Dans un tel cas d'utilisation, connaître l'adresse d'une variable n'apporte strictement rien. Par contre, lorsque l'on travaille avec des structures plus complexes, cela peut présenter un intérêt certain....

Cet article est réservé aux abonnés. Il vous reste 97% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Réinvention de la roue... des temporisations

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
112
Mois de parution
janvier 2021
Domaines
Résumé

Les temporisations sont essentielles au sein des systèmes d'exploitation et dans certaines applications, pour déclencher des actions à l'échéance d'un délai. Il existe différents algorithmes pour les gérer de manière efficace. Cet article présente la fusion de deux d'entre eux, pour en tirer le meilleur.

Mesure fine de déplacement par RADAR interférométrique à synthèse d’ouverture (InSAR) par radio logicielle

Magazine
Marque
GNU/Linux Magazine
Numéro
244
Mois de parution
janvier 2021
Domaines
Résumé

Nous avons démontré dans le premier article de la série la capacité à mesurer la distance à une cible (range compression), puis dans un deuxième temps à détecter l’angle d’arrivée du signal (azimuth compression). Fort de cette capacité de cartographier des cibles, nous allons conclure cette série sur la conception de RADAR à base de radio logicielle, et le traitement des signaux associé, par la mesure fine de déplacement des cibles par analyse de la phase (interférométrie) du signal, lors de la répétition des mesures.

Utilisation de l’IDE Visual Studio Code

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
112
Mois de parution
janvier 2021
Domaines
Résumé

Visual Studio Code, un outil dont Microsoft est à l’origine, est Open Source et gratuit, multiplateforme et ouvert grâce à son architecture d’extensions. Mis à jour mensuellement, il est écrit par des développeurs pour des développeurs.

La surcharge ou overloading en Python

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
112
Mois de parution
janvier 2021
Domaines
Résumé

On vous l’a dit et répété : Python est un langage à typage dynamique ! Ah... donc, on ne peut pas réaliser de surcharge de fonctions ou de méthodes ? Pour les débutants, on dira non, pour les autres, on peut toujours s’arranger avec Python...

Accélérez vos traitements en développant votre propre solution de parallélisation

Magazine
Marque
GNU/Linux Magazine
Numéro
244
Mois de parution
janvier 2021
Domaines
Résumé

Certains de vos traitements lancés par des scripts shell s'exécutent bien trop lentement à votre goût, alors que certaines tâches séquentielles pourraient en fait s'exécuter simultanément : cet article va vous montrer de façon détaillée comment les accélérer en les parallélisant.