FREAD / FWRITE - C++ - Programmation
Marsh Posté le 03-07-2005 à 14:18:50
tiens c'est du C ça. utilise les fstream. l'est dégueux ton code.
utilise "b" comme flag supplémentaire à l'ouverture, mosieur le windowsiens
Marsh Posté le 03-07-2005 à 14:25:18
Il est dégeux par ce que j'utilise le C ou pour autre chose ?
Marsh Posté le 03-07-2005 à 14:28:47
bin la fonction de 15.000km de logn, deja, ca le fait pas
Marsh Posté le 03-07-2005 à 14:30:16
parce que même pour du C, c'est dégueux. surtout parce que tu ne vérifies ni les lectures, ni les écritures. ton emploi de feof/ferror est foireux. et ça fuit comme c'est pas permis. d'ailleurs tu fais des allocations à tout bout de champ quand y en as pas besoin.
Marsh Posté le 03-07-2005 à 14:33:37
Bon je vais lire un peu de doc sur les fstreams. je vous redis quoi.
Marsh Posté le 03-07-2005 à 14:34:58
t'as aussi le droit d'utiliser STL plutot que de sortir tes listes faite à la main.
Marsh Posté le 03-07-2005 à 15:10:58
Tout a fait je m'amuse avec ce ptit projet a etudier un peu le c donc voila ...
Par ailleurs ça Fonctionne ! j'ai pas encore otpimiser ni stream ni STL (faut que j'interroge le pti google ) mais enfait c'etait le b qui me manquait.... Bien joué Taz ^^
Marsh Posté le 03-07-2005 à 15:11:22
putain de bordel de merde c'est dur à mettre une balise CODE?
A part ça félicitation pour ton code, il est magnifique
(Cause: Taz a déja tout cité donc je vais pas le recité )
Marsh Posté le 03-07-2005 à 15:18:09
Y a besoin de cette grande demonstration pour dire ça ? Cete balise de code c'est quoi ?
Marsh Posté le 03-07-2005 à 15:19:14
chrisbk a écrit : s'il débute en C++ y'a rien de navrant |
je pense pas qu'il débute. Je vois pas pourquoi un débutant en python apprend tout de suite manipuler une list alors qu'on considère std::list<> comme un truc avancé. Je place les conteneurs de base de STL au même niveau que cout.
Marsh Posté le 03-07-2005 à 15:20:19
bah c++ je suis debutant j'ai des souvenir de C ..je sais ça fait quelques années.
Marsh Posté le 03-07-2005 à 15:23:13
on a bien vu que ton C++, c'est du C avec des delete et des bool
Marsh Posté le 03-07-2005 à 15:25:42
bah en fait je veux juste voir les notions de POO avec ces maudits pointeurs.
Marsh Posté le 03-07-2005 à 15:35:48
c'est pas lié. y a rien de maudit avec les pointeurs, juste des mal-appris.
Marsh Posté le 03-07-2005 à 15:38:35
ça je suis tout afait d'accord. J'aurais pas la pretention de dire qu'on m'a mal appris juste que je reutlise avec des souvenirs et forcemetn c'est pas top ^^
Marsh Posté le 03-07-2005 à 16:13:45
Concernant les fuites mémoires, d'après ce que je lis c'est lorsque l'on perd des adresses allouées dynamiquement ? Donc dans ma methode Load, j'utilise des constructeurs par recopie pour allouer (je pense) coorectement ... pourrais t'on m'en dire plus ?
Marsh Posté le 03-07-2005 à 16:17:50
case 4:
tmppheromone = new pheromone;
fread(tmppheromone,sizeof(pheromone),1,fp);
if(feof(fp)){end=true;}
if(ferror(fp)){error=true;}
if(!end&&!error)
{
_new->contenu= new pheromone(*tmppheromone);
noeud=elements[tmppheromone->GetY()][tmppheromone->GetX()];
if(!noeud)
{
elements[tmppheromone->GetY()][tmppheromone->GetX()]=_new;
}
else
{
while(noeud->next)
{
noeud = noeud->next;
}
noeud->next = _new;
_new->previous = noeud;
}
}
break;
il est ou le delete ?
Marsh Posté le 03-07-2005 à 16:23:35
Ah tres Bonne question !,
Effectivement le delete je ne peux pas le mettre ... ça fait planter !
Dans la version précedente je mettais un delete tmppheromone juste avant le break c'etait la bonne methode ?
PS : J'ai remis une version qui 'fonctionne un peu mieux' mais sans l'histoire du delete (j'essaie de refaire le tout en dynamique pour comprendre d'ou vient le pb)
Marsh Posté le 03-07-2005 à 16:40:50
quel merde les listes chainées je m'y perd tout le temps et là je suis sur un projet je dois les utiliser fait chierrrr (au passage si quelqu'un a de bon truc la-dessus ainsi que des algo sur les arbres je suis preneur)
au fait pour la balise CODE:
http://forum.hardware.fr/hardwaref [...] m#t1088174
Mais bon, de toute facon je vois que même les dino. de HFR ne l'utilise pas...
Marsh Posté le 03-07-2005 à 16:48:42
Bah théoriquement avec ce que j'avais relu c'etait simple ... mais il doit y avoir une chose que je ne connais pas bien et qui me pète dans les mains ...
Marsh Posté le 03-07-2005 à 17:16:26
blastman a écrit : quel merde les listes chainées je m'y perd tout le temps et là je suis sur un projet je dois les utiliser fait chierrrr (au passage si quelqu'un a de bon truc la-dessus ainsi que des algo sur les arbres je suis preneur) |
Dedans tu trouvera ton bonheur concernant les algos sur les arbres et compagnies :
http://www.personal.kent.edu/%7Erm [...] rithm.html
Marsh Posté le 03-07-2005 à 14:14:10
J'ai un problème qui m'a tenu toute la nuit et que je n'arrive pas à resoudre. Je vais fournir le code en enniter pour que vous puissiez juger.
J'ai un tableau de liste de chainées qui contient pour chaque cellule l'adresse d'un objet. Ces obets sont objet, pheromone , nourriture et obstacle et ils derivent tous du premier. J'aimerais sauvegarder la liste des tous les objets puis evidemment etre capable de relire et de reconstituer la liste chaînée. mes deux fonctions compilent et fonctionnent MAIS : la fonction d'enregistrement me dit qu'elle enregistre par exemple 20000 objets, la fonction read n'en recupere que 26 ... Alors evidemment mes connaissances en C++ sont lointaines et j'ai deja du mal avec les pointeurs alors si les fichiers s'y mettent je suis mal... Alors j'attends toutes vos critiques. D'avance Merci !
Message édité par eXarkun le 04-07-2005 à 20:56:57