1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
#include <stdio.h>
#include <stdlib.h>
typedef struct maStructure
{
char nom[20],
prenom[20];
int age;
} monElement ;
int tailleTableau(monElement *L)
{
int taille = 0;
while (true)
{
if ( L[taille].age==0) break;
taille++;
}
return taille;
}
monElement * allouerTableau(int n)
{
monElement *T ;
monElement null = {" ", " n", 0}; // fin de tableau
T= (monElement * ) malloc(sizeof(monElement)*(n+1));
T[n] = null;
return T ;
}
monElement * inserer_element(monElement x, int n , monElement *L )
{
int i = 0;
int taille = tailleTableau(L);
monElement *M ;
M= allouerTableau(taille+1);
printf("Le nom du premier element est = %s : \n", L[0].nom);
int nb = n-1; // car l'index part à zéro
for(i=0; i<=nb ; i++)
{
M[i] = L[i];
}
M[nb] = x; // On insère le nouvel élément
for (i=nb; i<taille; i++) M[i+1] = L[i];
printf("Le nom du second elements est = %s : \n", M[1].nom);
free(L); // on libère l'espace de l'ancien tableau
return M ;
}
int main()
{
monElement *monTableau;
monTableau = allouerTableau(5);
monTableau[0] = (monElement){"Durand", "Pierre", 42};
monTableau[1] = (monElement){"Martin", "Jean", 17};
monTableau[2] = (monElement){"Poquelin", "Jean-Baptistet", 62};
monTableau[3] = (monElement){"Camus", "Albert", 38};
monTableau[4] = (monElement){"Dupont", "Robert", 20};
monElement ajout = {"De La Fontaine", "Jean", 71};
printf("Taille de monTableau avant insertion = %d\n\n", tailleTableau(monTableau));
monTableau = inserer_element(ajout, 3, monTableau ); // on ajoute cet élément à la 3ieme entrée
printf("Le nom du troisieme element est = %s : \n", monTableau[2].nom);
printf("\nTaille de monTableau apres insertion = %d\n", tailleTableau(monTableau));
} |
Partager