Probleme d'allocation dynamique de la memoire en C

[Résolu]
Signaler
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
-
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
-
Bonjour,

Je developpe sous devcpp et dans ce prog je créé un tableau de sommets de taille variable que j'affiche avec opengl.

la structure d'un sommet est:
typedef struct vertex
{
float x;
float y;
float z;
};

ensuite je créé un pointeur de type vertex* :
vertex*mapVertex;

au lancement du prog je fais:
mapVertex=(struct vertex*)malloc(numVertex*sizeof(struct vertex));

puis des que le nombre de vertex diminue au augmente ( je fais diminuer ou augmenter ce nombre grace a 2 touche du clavier), je modifie la taille de mon tableau avec :

realloc(mapVertex,numVertex*sizeof(struct vertex));

cela marche bien quand le nombre de vertex diminue, mais des que le nombre de vertex depasse la valeur initiale (au lancement du prog) ca plante et la fementre se ferme brutalement ou alors windows me dit qu'il a rencontré un probleme avec mon prog ( j'y peux rien moi si mon prog depasse windows...)

Quelqu'un peut il m'expliquer ou est mon erreur?
dois je me mettre au C++ et utiliser les listes chainées?

3 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
9
Plutot que realloc tu devrais faire un nouveau malloc et détruire l'ancien
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
et je precise qu'il n'ya pas de fuite de memoire...
Mon prog prend environ 10 Mo dans la memoire cettre taille varie faiblement en fct du nombre de vertex entre 9 et 11 Mo et meme la ca plante!

D'apres le gestionnaire de taches...
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
oui c'est ce que j'ai fait et ca focntionnne! mais ca resoud partiellemtn le prb parce que je perd toute les données contenues dans l'ancien tableau

Mais bon pour mon appli c'est pas grave puisque je dois tout recalculer...