Débordement de la mémoire

imanedaoudi Messages postés 82 Date d'inscription vendredi 20 mai 2005 Statut Membre Dernière intervention 24 octobre 2005 - 18 juil. 2005 à 12:35
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 - 18 juil. 2005 à 14:16
Hi,
je ne sais plus pourquoi le programme ci contre ne marche plus pour dim trés grande 60 par exemple

#include
using namespace std;
void main(int argc, char* argv[])
{ int dim=60;
float xmi=3.4,xma=115.6,ymi=3.4,yma=115.6;
srand( (unsigned)time( NULL ) );
base bas(dim,xmi,xma,ymi,yma);
}
vecteur::vecteur(){}
vecteur::vecteur(vecteur &p){x=p.x;y=p.y;id=p.id;}
void vecteur::afficher()
{ //cout<<endl;
cout<<"id= "<> value;
val1=value;
Al >> value;
val2=value;

if( (i%2)==0)
{
vect[p].x=val1;
vect[p].y=val2;
vect[p].id=compt++;
p++;

}
i=i+2;
}

Al.close();
}

Please help

3 réponses

BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
18 juil. 2005 à 13:47
Euh... la ligne suivante ne sert à rien:

for (int l=0;l<Dimbase;l++) vect=new vecteur();

Ou pardon, si: tu alloue DimBase fois le vecteur vect, sachant que la mémoire ne sera pas désallouée et que vect pointera sur la dernière allocation.

J'imagine que tu as oublié les accolades pour cette boucle-là

Buno
-----------------------------------------
L'urgent est fait, l'impossible est en train de se faire. Pour les miracles, prévoir un délai...
0
imanedaoudi Messages postés 82 Date d'inscription vendredi 20 mai 2005 Statut Membre Dernière intervention 24 octobre 2005
18 juil. 2005 à 14:00
je ne comprent pas clairement votre remarque à propos des accolades ,l'ajout des accolades dans la boucle ne me servira à rien, par contre je ne veux pas désallouer la mémoire à ce niveau car je veux manipuler les valeurs resulatantes dans d'autres fonction, je ne sais pas est ce que tu me comprend ou non?
0
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
18 juil. 2005 à 14:16
Pour les accolades, j'imagine que tu voulais faire ceci:

Pour l allant de 0 à DimBase
allouer un nouveau vecteur
lire les valeurs
stocker ces valeurs
Fin Pour

Toi, tu fais ça:

Pour l allant de 0 à DimBase
allouer un nouveau vecteur
Fin Pour
lire les valeurs
stocker ces valeurs

Tu vois le soucis? En gros, il faut faire:
for (int l=0;l<Dimbase;l++)
{
vect=new vecteur();
...
}
0