Posté le 09/12/2013 13:45
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 258 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 29/06/2014 14:04 | #
c'est pire,
une fenetre m'affiche
noexisting memory by data write access at FFFFFFE8
Citer : Posté le 29/06/2014 14:05 | #
Évidemment.
*tableaupoints[0]=points[0];
*tableaupoints[1]=points[1];
}
Citer : Posté le 29/06/2014 14:06 | #
:huh:
Non je vois pas
Citer : Posté le 29/06/2014 14:07 | #
Tu peux me mettre le Line::Line() ?
Citer : Posté le 29/06/2014 15:37 | #
*tableaupoints[0] = new Point();
*tableaupoints[1] = new Point();
*tableaupoints[2] = new Point();
}
Citer : Posté le 29/06/2014 15:55 | #
Sympa, mais tu as dit
Citer : Posté le 29/06/2014 16:02 | #
:aie2: :boulet3:
:boulet:
Ajouté le 29/06/2014 à 16:43 :
*tableaupoints = new Point[2]();
}
delete[] *tableaupoints;
}
Mais ça ne marche pas
Citer : Posté le 29/06/2014 16:53 | #
Tu peux pas faire ça dans ton constucteur. Avant cela, il faut au moins faire :
Avec n le nombre de pointeurs que tu voudras pouvoir manipuler.
Citer : Posté le 29/06/2014 17:00 | #
Donc je devrais faire
Tableaupoints = malloc(sizeof (Point*));
*tableaupoints = new Point [2]();
}
Line::~Line {
Delete[] *tableaupoint;
Free (tableaupoints);
}
?
Citer : Posté le 29/06/2014 17:05 | #
Je pense que c'est ça, mais sans les trois majuscules en trop.
Citer : Posté le 29/06/2014 17:10 | #
Je suis sur ma tablette donc pour coder c'est pas l'idéal
Citer : Posté le 29/06/2014 17:11 | #
Tu codes sur une tablette ?
C'est comme éditer avec le SDK... la blague !
Enfin je dis ça mais ça fait pas une semaine que je suis sur Sublime Text
Citer : Posté le 30/06/2014 13:43 | #
Donc je devrais faire
Tableaupoints = malloc(sizeof (Point*));
*tableaupoints = new Point [2]();
}
Line::~Line {
Delete[] *tableaupoint;
Free (tableaupoints);
}
?
Marche pas, malloc renvoie un void* pas un void**
De plusn en faisant tableaupoints = new Point*(); , ça me fait une erreur système
Citer : Posté le 30/06/2014 13:46 | #
Mais c'est pareil, malloc() renvoie de la mémoire, tu n'as qu'à caster le pointeur, il n'y aura aucun problème.
Citer : Posté le 30/06/2014 13:51 | #
ça fait une erreur sys tème
Citer : Posté le 30/06/2014 13:52 | #
Sans vouloir ramener ma fraise, quelle idée de faire du C++ sur ce compilo ?
Citer : Posté le 30/06/2014 13:58 | #
Reprenons tout.
{
tableaupoints = (Point **)malloc(sizeof(Point *));
*tableaupoints = new Point[2];
}
Line::~Line()
{
delete[] *tableaupoints:
free (tableaupoints);
}
Après réécriture, cela me semble correct.
Citer : Posté le 30/06/2014 14:02 | #
toujours pas l'erreur système persiste
Citer : Posté le 30/06/2014 14:04 | #
J'ai corrigé une boulette, tu peux remettre les parenthèses après Line::~Line ? x)
Par ailleurs, je peux avoir aussi le modèle de la classe Line ?
Citer : Posté le 30/06/2014 14:06 | #
les parenthèses ont été ajoutées (le compilo t'a engueulé )
public:
Line();
~Line();
void SetLocation(Point points[2]);
Point getPoints(int a);
int getColor();
private:
Point** tableaupoints;
int color;
};
Citer : Posté le 30/06/2014 14:08 | #
Sans vouloir être méchant, je te ferais remarquer que je n'ai fais que modifier le code que tu m'avais donné dans lequel elles étaient aussi absentes
Et pourquoi vouloir allouer dynamiquement tes deux points au lieu de faire Point points[2]; ?