malloc/realloc sur des structures ? methode ?
Bonjour tous,
avant de commencer
j'ai des structures de type
Code:
1 2 3 4 5 6 7 8
| typedef struct
{
short x;
short y;
short z;
} point;
point *p ;
point liste[NPI]; |
NPI vaut 64 au début du programme
le programme sera porté sur des bécanes antiques (1973 à 1990) donc je dois
tester si la mémoire est suffisante au début du programme
je pensais à quelque chose du style :
Code:
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
| int main(void)
{
if((p=malloc(sizeof(struc point) * NPI)) == NULL)
{
/* ne pas lancer */
fprintf(stderr,"\\nn\t%s\n\n", message(memoire));
exit(1);
}
/* sinon effectuer la reservation */
p=malloc(sizeof(struc point) * NPI);
/* ici les traitements */
/* dont une boucle pour remplir les coordonnees*/
if (scanf(" %d %d %d", &p[i].x, &p[i].y, &p[i].z) == 3)
{
/* traitement normal */
scanf(" %d %d %d", &p[i].x, &p[i].y, &p[i].z);
liste[i]=p;
}
else
{
/* erreur ! */
fprintf(stderr,"\\nn\t%s\n\n", message(saisie));
}
/* fin de boucle des saisies*/ |
déjà est ce que je commets des erreurs à ce niveau ?
et surtout je compte proposer à l'utilisateur de traiter des coordonnées supplémentaires donc je devrai agrandir la liste[]
quelle est la syntaxe pour realloc sur la struct list[NPI] ?
Code:
liste[] = ralloc (liste[], ((sizeof(strcut point) * nvl_taille));
devrai ne pas marcher je suppose ? alors comment le faire ?
merci
désolé pour les questions qui peuvent paraitre bêtes mais j'ai du mal à m'y remettre au C et les docs ne sont pas très claires voire existantes sur ce point précis.