IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

seule enface builder :( [Débutant(e)]


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Par défaut seule enface builder :(
    Bonjour ....
    je suis nouvelle sur ce forum ....et vous pouvez meme dire nouvelle dans tous le domaine ...(malgre que je suis une etudiant d informatique )
    j ai deja programmer en pascal ...je peux dire que je m en sorte un peu..

    la ...j avais a programmer en C ..et c etait vraiment la catastrophe totale ...enfin j ai pu le faire marcher ( mon programme ) en C pure sous le dev (c etait quelque chose de baclee mais bon ca marchais dans tous les cas (avec tous les ex)) ..
    mais...le probleme c est que je dois lui faire une interface graphique avec le builder ..et j arrive pas a le faire fonctionner ...enfin ca marche pour des exemples et ca marche pas pour d autre ...de plus ce qui va me redre folle c est qu il marche des fois pour un exemple et il marche pas la fois d apres pour le meme exemple .......et je vous raconte pas combien de fois il m affiche l erreur ..violation ....d acces memoire )...rq .. la fleche verte est presque toujours dans des push(j arrive pas a dechifferer ce CPU ou je sais pas quoi qui s affiche en assembleur)


    peut etre je dois parler un peu sur mon programme ...ce qui est nouveau pour moi c est l utilisation des malloc ...
    en tous cas l utilisateur dois saisir les donnees d un tableau a deux dimmension que je dois traiter (et vraiment les traiter ) et je dois lu afficher le resultat dans un tableau...

    j ai vraiment besoin d aide ..s il y a quelq un qui metrise ce builder ....car j aurais aimer que quelqu un me donne un peu de conseils ..ou des idees ...pour pouvoir resoudre ce probleme....car vraiment la je me trouve perdu...


    dslee pour se long probleme ..je sais que je parle trop ...mais je voulais bien expliquer la sitution une fois pour toute


    Merci d avance pour toute sorte d aide possible

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Alors je n'aurais qu'une chose à te dire "lire les tutoriels"....

    Sinon concernant les access violation, une simple recherche google t'aurais permis de savoir qu'il s'agit en fait d'un accès à une adresse mémoire invalide (donc en fait tu as un pointeur qui contient une mauvaise adresse).

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Par défaut
    tout au depart merci beaucoup pour votre reponse..et dsle pour le derrangement..
    la verite j ai vraiment lu ( deja que quelques exemples fonctionnes ce n est que grace a la lecture ..mais...) meme ce que vous venez de dire a propos du message d erreur je l ai deja rencontrer ...mais ce qui fait que je baisse les bras c est que le programme fonctionner correctement sous dev et sans ancun bug ou probleme ...et l excution donne des resultats differents pour le meme ex (le resultat juste ou un message d erreur) je voulais savoir s il y a des instruction qui fonctionne pas de la meme maniere entre le c et C++..
    de plus j ai une question vraiment bete mais ...je vais comme meme la poser...(pour savoir si ce que j ai fait est juste ou non car je doute mainteent a ts )
    si on a des procedure de traitement q on veut les utiliser lors de l excution (ie qui n ont aucune relations avec l affichage ) comment les declarer et ou au juste (je les avais declarer de plusieurs methodes et ce builder ne dit jamais que c est faux et toujours ca marche ) la question est meme pour des variable globale pour toute les voids
    et merci d avance

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Ouarf...alors écoute les messages sans retour à la ligne, sans poncutation et sans démarcation claire des questions je cherche même pas à les lires ça me donne mal au crâne...donc fais des efforts parce que là tes messages ne donne pas envie qu'on y réponde.

    Normallement ton code C sera compilé sans problème par un compilateur C++.

    Pour la déclaration de tes méthodes qui n'ont rien à voir avec l'affichage tu peux les rassembler dans un fichier (un couple de deux fichiers en fait, un .c et un .h). Tu les déclares alors dans ce fichier comme n'importe quelle fonction C normale.

  5. #5
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Par défaut
    desolee....
    j essayerai de mieu m exprimer (cote idee et cote presentation)...

    merci pour votre conseil en tous cas ...(malgre que c etait un peu dur..)

    enfin pour les malloc deja j avais un probleme cote utilisation sous builder..il m a declarer fausse syntaxe ....c est ce qui m a pousser a douter ...

    mais la question est ..est ce que je vais les laisser tout a fait des void comme ils etaitent???? ...

    de plus d apret ta reponse je ponse pas que la facon de declarer les fonction avait un effet...

    une autre question :...
    est ce que vous avez utilise un malloc sous builder??... est ce que vous pensez que ces deux tranches du code sont justes???????

    (je sais que je devais faire des verification d allocation mais ..meme avant je l ai pas fait)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    //---------------------------------------------------------------
    float **matrice=Null 
     
    matrice = (float**)malloc ((nbr_categorie+1)* sizeof (float*));
         for (i=1;i<=nbr_machine;i++)
           matrice[i] =(float*) malloc((nbr_machine+1)* sizeof(float));
     
    //----------------------------------------------------------------------
    struct elt_comb1
           {int val;
            int a ;
            int b;
            int val_max;
            float benefice;};
    elt_comb1 *combin=NULL;
     
    combin= (elt_comb1*)malloc((nbr_categorie+1)*(sizeof(struct elt_comb1)));
    //---------------------------------------------------------------------
    dsleea nouveau

    et je m excuse car mon clavier est en anglais et mon francais est vraiment casse

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Regarde du côté de new et delete, ce sont les remplacants de malloc et free en C++.

    Sinon à première vue rapide ton code est correct (syntaxiquement parlant) après je sais pas ce que tu veux faire exactement.

  7. #7
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Par défaut
    Si je vous dit que pour une petite matrice tous va bien ..mais des que j ai plus que 4*3 ....des fois ca marche et des fois non ....

    peu cela vous dire quelque chose ?????
    ca vous donne quoi comme idee ????du premier coup ??
    toujours parlons d un acces refuse ...

    car vraiment j ai pas envie de tous refaire ...

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Je vois pas trop...par contre les tableaux ça commence à 0 et pas à 1 (dans tes boucles...)

  9. #9
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Par défaut
    moi par contre j ai vu autre chose ...
    j ai pris mon code source c et je l ai compile avec un compilateur C++ (toujours sous dev )et je vous raconte pas le nombre de faute qu il m a declarer au point que je sais pas comment ca marchait sous C ( car il y avait des faute cote type de variable inrratable ) et je vois pas comment le compilateur les a deppasser ...
    je suis vraiment choquee car meme le builder n a rien declarer ...et je voit pas qu est ce qu il faisait devant une instrction comme :
    var1_de_type_int = var2_type_float / var3_type_float;

    vraiment je vois pas comment il agissaient (le compilateur c d abord et le builder )...vraiment je vois mal l idee..
    est ce que vous avez une explication ????

    maintenant je compte revoir tous mon code et le faire fonctionner tous d abbord sous un C++ pure et apres je vais revoir le builder et j espere regler le probleme..


    mais j ai une petite question ....c est la 2 fois que je remarque que le builder ne detecte pas des faute tres evidante et te laisse faire ce que tu veux...
    est ce c est normal ...?? et pourquoi ???

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Ton code n'a pas vraiment de faute...c'est juste que ton compilateur C et Builder te croient plus maline

    En fait ils transformaient ta ligne (en interne) de façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int entier = (int) mon_float * mon_deuxieme_float;
    Bref ce n'est pas une faute....

    P.S. Un compilateur à toujours raison, règle d'or même si elle est parfois très énervante.

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Bonsoir,
    Pour t'aider a trouver ton erreur, tu peux utiliser l'outil CodeGuard, trés utile pour déterminer l'emplacement des fuites mémoires.
    Pour ce faire, va dans Projet, puis Options. Dans l'onglet CodeGuard, sélectionne CodeGuard Validation, puis les trois autres options qui te sont rendues disponniblent. Enfin, relance une compilation complète et execute ton code. Avec un peu de chance, tu auras une trace de ta fuite mémoire.
    Tu peux aussi utiliser AQTime. Cet outil est payant, mais il existe une version de demonstration. Personnellement, je le trouve trés puissant, bien que pas évidant à utiliser.
    Dans tous les cas, il ne faut pas être étonné lorsqu'un code s'execute normalement alors qu'il a été compilé avec un certain compilateur, et qu'il ne fonctionne plus correctement avec un autre. Cela reste aussi vrai avec un executable qui peux trés bien se lancer correctement sur un ordi, et pas sur un autre. Suite à une fuite mémoire, le comporetment d'un executable est bien souvent complétement aléatoire.
    Bon courrage!
    Cordialement,
    Benjamin

  12. #12
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Par défaut
    Merci beaucoup mr Benjamine ...
    je vais essayer de voir votre solution ...et meme si elle m a pas aider j aurais apris quelque chose de nouveau ...et c est quelque chose qui m a fait plaisir

    pour votre avis Mr neilos...vous croyais qu il l a convertis automatiquement ??c est ca ??....
    peut etre.... malgre que je doute car l exemple qui ne marchais pas donne un float comme resultat de division (v= 14/3) ...
    je sais pas la vraiment j en sais rien ..ca me parrait bizzar qu il puisse le convertir tous seul...vous etes sur qu il peut le faire et que mon C++ n arrive pas a le faire

    pour le compilateur qu il a toujours raison ...je pense pas ...je t assure que tous sorte de programme peuvent deconner des fois



    Merci ...

  13. #13
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Citation Envoyé par T_Lara
    Merci beaucoup mr Benjamine ...
    je vais essayer de voir votre solution ...et meme si elle m a pas aider j aurais apris quelque chose de nouveau ...et c est quelque chose qui m a fait plaisir

    pour votre avis Mr neilos...vous croyais qu il l a convertis automatiquement ??c est ca ??....
    peut etre.... malgre que je doute car l exemple qui ne marchais pas donne un float comme resultat de division (v= 14/3) ...
    je sais pas la vraiment j en sais rien ..ca me parrait bizzar qu il puisse le convertir tous seul...vous etes sur qu il peut le faire et que mon C++ n arrive pas a le faire

    pour le compilateur qu il a toujours raison ...je pense pas ...je t assure que tous sorte de programme peuvent deconner des fois



    Merci ...
    De ma propre expérience le compilateur ne déconne pas...c'est toujours dans la tête du programmeur que ça déconne.

    Et je suis sûr à 100% que int = float * float ça marche...mais ça devient un int....

  14. #14
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Par défaut
    je vais vous faire confiance mais j ai une question..
    ca marche pour un int oubien ca doit etre un long??

  15. #15
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Ton compilateur fera du transtypage donc int ou long ton instruction compilera.
    Après est ce que ça marche (c'est à dire est ce que cela va se comporter comme tu le veux)...ça va dépendre de l'ordre de grandeur de tes données etc

  16. #16
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Par défaut
    je voulais juste avant de marquer ce sujet comme resolu...
    marquer la faute que j ai comise et qui a provoquer ce probleme....

    comme le builder a signaler ..ecriture dans une zone memoire interdite ...c etait ca la faute ...c etait une faute dans l indice de mon malloc j alloure pas suffisament de memoire pour mon travaille (enfin ..faute entre ligne et collone )..j ai pas fais attention dans mais indices....

    et ce qui a fais l ambiguite que sous le C ca marchais (ce qui a fait que j ai pas eu l idee de revoir mon code au depart) ...
    apparament le devl a une memoire plus vide (peut etre c est la difference en gestion de memoire ou dans l emplacement des donnees dans la memoire) ...ce qui a fait que par hasard tous marchait bien malgres que ca devais pas marcher ...
    je vois pas serieusement comment ..mais ben peut etre c est la mal chance :-)

    je voulais juste remercier tous le monde .. c etait vraiment gentil que vous m avez supporte

    je vous souhaite tous bon chance

  17. #17
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Mais de rien, se planter dans les indices c'est une erreur plus que courrante que tout le monde continue à faire

    Continue comme ça et surtout bonne chance à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Choisir Visual c++ ou Borland C++Builder ?
    Par DevEric dans le forum Choisir un environnement de développement
    Réponses: 31
    Dernier message: 14/06/2007, 23h48
  2. Outils, cours et NOUVEAUX tutoriels pour Borland C++Builder
    Par hiko-seijuro dans le forum C++Builder
    Réponses: 10
    Dernier message: 12/03/2006, 22h33
  3. c++ builder JavaDoc :)
    Par JEG dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/06/2002, 13h31
  4. Documentation DirectX dans C++Builder 3
    Par srvremi dans le forum DirectX
    Réponses: 1
    Dernier message: 26/04/2002, 09h59
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo