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
| #include <stdio.h>
#include <stdlib.h>
struct Base_de_donnees
{
int x;
int y;
char *station;
};
/* -tc- purge le tampon du flux d'entree standard */
void purge(FILE *fp)
{
if (fp != NULL)
{
int c;
while ((c = fgetc(fp)) != '\n' && c != EOF)
{
}
}
}
int main(void)
{
int taille = 0;
int ret = 0;
int rv;
/* -tc- Attention a eviter les variables globales. Par ailleurs, par
convension, les identificateurs en majuscules sont reserves aux constantes */
struct Base_de_donnees bd =
{
0, 0, NULL
};
do
{
printf("Entrez la valeur du tableau : ");
/* -tc- Attention a purger le flux de sortie standard */
fflush(stdout);
/* -tc- Attention a verifier la valeur retournee par scanf() */
rv = scanf("%d", &taille);
/* -tc- Attention a purger le flux d'entree standard */
fpurge(stdin);
}
while (rv != 1);
bd.station = calloc(taille, sizeof *bd.station);
/* -tc- Attention a tester la valeur de retour de calloc() et a liberer
la memoir ele moment venu */
if (bd.station != NULL)
{
/* -tc- Actions utilisant bd.station */
free(bd.station), bd.station = NULL;
}
else
{
/* -tc- Echec de l'allocation */
ret = EXIT_FAILURE;
}
return 0;
} |
Partager