Vous êtes sur la page 1sur 1

TD2 : les pointeurs Université de Batna 2 Algorithmique et structures de données

TD2

Exercice1 :

Quelle est la différence entre une variable statique et un variable dynamique ?

Exercice2 :

Soit P un pointeur qui "pointe" sur un tableau A:


int A[] = {12, 23, 34, 45, 56, 67, 78, 89, 90};
int *P;
P = A;
Sachant que A [0] prend l’adresse = #100 (en décimal). Quelles valeurs ou adresses (en décimal) fournissent ces expressions:
• *P+2
• *(P+2)
• &P+1
• &A[4]-3
• A+3
• &A[7]-P
• *P+(*P-10)
• *(P+*(P+8)-A[7])

Exercice 3 :

a) Écrire un programme qui permet de créer et de lire deux tableaux A et B « leurs taille respective : N et M» en utilisant
seulement des pointeurs.

b) Ajouter l’ensemble d’instructions qui permet de fusionner ces 2 tableaux en un autre T (sa taille = N+M) et de supprimer A
et B.

c) Ecrire une fonction qui permet d’afficher le contenu d’un tableau T.

NB : Utiliser le formalisme pointeur à chaque fois que cela est possible.

Exercice4 :

La fonction sizeof(TYPE) en langage C permet de calculer l’espace mémoire nécessaire pour un type donné (simple ou structuré).

a) Expliquer le principe de calcule utilisé par cette fonction afin de calculer la taille d’un type structuré
b) Calculer la taille des types suivants :

Struct type1 { Struct type2 { Struct type3 { Struct type4 {


Char c1 ; Int x ; Char c ; Char S [9] ;
Char c2 ; Double y ; Int x ; Int x ;
Char c3 ; } Double y ; Double y ;
Int x ; } }
}

M. bada 1

Vous aimerez peut-être aussi