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
|
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct signet{
char *url;
char *description;
int etoile;
};
struct signet *creesignet(struct signet *s){
int i,x;
char stop;
char *url,*description;
stop='O';
x=0;
i=0;
s=malloc(sizeof(s));
if (s!=NULL){
while (stop=='O'){
if (x>0) s=realloc(s,sizeof(s)*(x+1));
printf("donnez l'url:\n");
scanf("%s",url);
while ((i=getchar())!='\n'&& i!=EOF);
(s+x)->url=calloc(strlen(url)+1,sizeof(char));
strcpy(s->url,url);
printf("donnez la description:\n");
scanf("%s",description);
while ((i=getchar())!='\n'&& i!=EOF);
(s+x)->description=calloc(strlen(description)+1,sizeof(char));
strcpy((s+x)->description,url);
printf("donnez une note de 1 à 5: \n");
scanf("%d",&((s+x)->etoile));
while ((i=getchar())!='\n'&& i!=EOF);
printf("souhaiter vous continuer\n");
scanf("O/N: oui/non %c",&stop);
x++;
}
}
else printf("erreur");
return s;
}
void affiche(struct signet *s){
int i;
for (i=0;i<3;i++){
printf("url:%s\n",(s+i)->url);
printf("description:%s\n",(s+i)->description);
printf("qualité du site: %d\n",(s+i)->etoile);
}
}
int main(){
int i;
struct signet *s;
if (s!=NULL){
struct signet *s=creesignet(s);
for (i=0;i<3;i++){
free((s+i)->url);
free((s+i)->description);
free(&((s+i)->etoile));
free(s+i);
}
}
else printf("erreur");
return 0;
} |
Partager