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>
#include<string.h>
typedef struct _info
{
char* nom_fichier;
char* source;
char* dest;
int taille_fichier;
int nombre_octets_envoyes;
}info;
typedef struct element
{
info donnees;
int taille;
struct element* next;
}element;
typedef element* liste_info;
// copier la deuxieme variable dans la premiere
void copier_info(info *donnees1, info *donnees2)
{
donnees1->nom_fichier = strdup(donnees2->nom_fichier);
donnees1->source = strdup(donnees2->source);
donnees1->dest = strdup(donnees2->dest);
donnees1->taille_fichier = donnees2->taille_fichier;
donnees1->nombre_octets_envoyes = donnees2->nombre_octets_envoyes;
}
// teste si deux infos sont egale
int est_egale_info(info donnees1, info donnees2)
{
if ((!strcmp(donnees1.nom_fichier,donnees2.nom_fichier)))
{
return 1;
}
else
{
return 0;
}
}
// ajouter une donnees en fin de liste
liste_info ajouter_en_fin(liste_info liste,info *donnees)
{
/* On crée un nouvel élément */
element* nouvelElement = malloc(sizeof(element));
/* On assigne la donnee au nouvel élément */
copier_info(&(nouvelElement->donnees),donnees);
/* On ajoute en fin, donc aucun élément ne va suivre */
nouvelElement->next = NULL;
if(liste == NULL)
{
/* Si la liste est videé il suffit de renvoyer l'élément créé */
return nouvelElement;
}
else
{
/* Sinon, on parcourt la liste à l'aide d'un pointeur temporaire et on
indique que le dernier élément de la liste est relié au nouvel élément */
element* temp=liste;
while(temp->next != NULL)
{
temp = temp->next; // warning ici
temp->taille++;
}
temp->next = nouvelElement; // warning ici
return liste;
}
} |
Partager