Vous n'êtes pas identifié.
je compile avec TC3 en modèle mémoire TINY et pourtant ca plante sur ma casio quand je fais des new pour allouer des objets... Please help.. je suppose que les pointeurs doivent etre far malgre le TINY et c'est pour cela que ca deconne.. (remarque : le programme marche avec l'émulateur)
Merci d'avance.
Hors ligne
Non non je lis pas de fichiers externes, j'alloue des objets (class). Le programme tourne impec avec l'émulateur WinG100, mais ca bloque sur la G100+. Ce que je comprends pas c'est que si je veux définir le pointeur avec NEAR, et que je l'alloue avec new, le compilateur provoque une erreur en me disant "conversion de type impossible far *..etc" alors que normalement vu que je compile en modèle mémoire TINIY je ne devrais pas avoir de pointeur far... Je ne sais pas si on peut "forcer" l'allocation en pointeur near avec new.
Hors ligne
je suppose que les pointeurs doivent etre far malgre le TINY et c'est pour cela que ca deconne
Pas forcément, ca fonctionne bien sans pointeurs far...
Tu pourrais donner un exemple de code qui foire stp?
Hors ligne
les ptr far sont utilisables en tiny, mais tu ne dois pas utiliser de ptr near... la plupart du temps, de bêtes pointeurs suffisent
Hors ligne
[troll]Digital Mars c'est Mieux !! :mrgreen: [/troll]
Hors ligne
je ne cherche pas à utiliser de pointeurs FAR... au contraire, puisque je pensais que pour marcher sur la casio il fallait, exclusivement, des pointeurs NEAR, et que vu que NEW alloue des pointeurs FAR c'était pour cela que ca plantait...
le code qui plante sur la casio (mais marche avec l'émulateur) est du genre :
class Wdw {définition de la classe};
Wdw *PW;
PW=new Wdw(paramètres du constructeur);
PW->f(); // appel d'une fonction membre
delete PW;
par contre si je mets
Wdw near *PW;
je n'arrive plus à compiler ("Cannot convert Wdw far * to Wdw *")
je précise que mon programme fonctionne si je travaille sans pointeur mais en faisant
Wdw W(paramètres du constructeur);
W.f(); //appel d'une fonction
Est-ce que vous dans vos programmes vous créez des objets que vous utilisez ensuite via des pointeurs alloués par new ?
Hors ligne
Pourtant ce code est correct et devrait pourtant marcher, pas besoin de near... :? Oui certains d'entre nous utilisent ca aussi dans leurs progs (d'ailleurs y'a quasiment que ça dans Sonic)
Ce qui est inquiétant c'est que ça marche avec l'émulateur et pas avec la casio... mais ca vient peut-etre d'une certaine instruction dans les fonctions de ta classe ou quoi
Sinon oui essaie un autre compilo comme digital mars, ca marchera peut-etre; ou alors essaie de voir si ca te fait tjs le coup avec d'autres fonctions membres, ou avec des plus petites classes etc...
Hors ligne
j'auaris tendance a dire la meme chose, car je n'ai jamais eu de probleme avec new et delete en faisant ca.
ce n'est surement pas avec near et far que tu vas regler le probleme car en tiny new renvoie toujours un pointeur near
Hors ligne
Masterpage, tu me dis qu'avec le modèle TINY, new renvoie un pointeur near et je suis d'accord avec toi. C'est ce qui "devrait" être le cas, mais j'ai l'impression que mon problème vient du fait que justement dans mon programme ce n'est pas le cas et c'est parce qu'en fait le new renvoie un FAR que ca plante à l'execution sur la casio (et pas sur l'émulateur). D'ailleurs, malgrè TINY comme modèle, si j'essaye d'affecter ce new à un pointeur near. j'obtiens une erreur de compilation (converison de type impossible).
Et pourtant j'ai bien vérifié 10 fois que je compile en Tiny et j'ai même mis un test #ifndef __TINY__ dans le programme...
Hors ligne
Overflow , lorsqu'un programme fonctionne sous un environement et pas sous un autre sans raisons apparentes il y a de grande chances pour que tu ais débordé quelque part dans la mémoire...
Hors ligne
oui alors moi j'ai une autre théorie: essaie de changer de compilateur: digital mars.
Hors ligne
Théorie déjà proposé par masterpage, au passage, non négligeable donc!
Casioworld, c' est quand l' update de ton site :cry:
Hors ligne
c kan j'aurais le temps ! c vrai j'abuse. je passe enormement de temps avec ma cop. et j'ai du boulot. mais j'ai commencé.
Hors ligne
evite de toucher aux options !!
L"option inline chépakoi ki te decale la lecture, met la en sorte qu'elle fonctionne, ta essauyé de compiler avec la ligne de commande kon ta donné dan lotre post ?
Hors ligne
je vais le faire, mais la je finis des tests avec Visual C++ qui donnent des resultats bizarres comme je l'ai mentionne dans le sujet consacre a ce compilateur
Hors ligne