processeur NTVDM : instruction non autorisée (TURBO C)

Discussion dans 'Web, design' créé par the_quent1, 12 Novembre 2005.

Statut de la discussion:
Fermée.
  1. Offline
    the_quent1 Elite
    Bonjour
    j'ai un problème en programment en C (sous Turbo C)
    j'ai tapé un petit programme de C graphics et je l'ai modifié au fur et a mesur et mnt lorseque je le lance le PC me dit:

    D:\PROGRA~1\TC\TC.exe
    Le processeur NTVDM a rencontré une instruction non autorisée.
    CS:0fad IP:fffd OP:32 00 00 00 00 Choisissez 'Fermer' pour mettre fin à l'application.

    mais mes autres programmes en C graphics fonctionne niquel !!
    j'ai éssayé sur 2 PC, le mien (un AMD64 3500+) et sur un P4 3.2Ghz ... pas de changement ..

    p-e que ca vient de mon code source ? que j'ai tapé qqchoze de non valide ?

    Code:
    #include <graphics.h>
    #define tempo 1000
    
    void module_graphique(void);
    void module_exercice(void);
    
    int X,Y,C;
    int i, j;
    int k, l;
    int clav;
    
    main()
    {
     int HGx_rect,HGy_rect,BDx_rect,BDy_rect,taille;
     int HGx_rond,HGy_rond,BDx_rond,BDy_rond;
    
     void *image_rect;
     void *image_rond;
     int clav;
    
     HGx_rect=82;     HGy_rect=12;     BDx_rect=40;     BDy_rect=40;
     HGx_rond=500;    HGy_rond=12;     BDx_rond=540;    BDy_rond=52;
    
     module_graphique();
     module_exercice();
    
     /***** RECTANGLE *****/
    
     taille=imagesize(HGx_rect,HGy_rect,BDx_rect,BDy_rect);
     image_rect=malloc(taille);
    
     getimage(HGx_rect,HGy_rect,BDx_rect,BDy_rect,image_rect);
     putimage(HGx_rect,HGy_rect,image_rect,1);
    
      /***** ROND *****/
      taille=imagesize(HGx_rond,HGy_rond,BDx_rond,BDy_rond);
      image_rect=malloc(taille);
    
      getimage(HGx_rond,HGy_rond,BDx_rond,BDy_rond,image_rond);
      putimage(HGx_rond,HGy_rond,image_rond,1);
    
    
     do
     {
      clav=getch();
      switch(clav)
       {
       case 100 : i++;
        break;
    
       case 113: i--;
        break;
    
       case 122 : j--;
        break;
    
       case 115 : j++;
        break;
    
    
       case 77 : k++;
        break;
    
       case 75: k--;
        break;
    
       case 72 : l--;
        break;
    
       case 80 : l++;
        break;
     }
    
      putimage(i,320+j,image_rect,1);
      delay(tempo);
      putimage(i,320+j,image_rect,1);
    
      putimage(450+k,320+l,image_rond,1);
      delay(tempo);
      putimage(450+k,320+l,image_rond,1);
    
        }while(clav!=27);
    
     free(image_rect);
     free(image_rond);
     closegraph();
    
    
    }
    
    void module_exercice(void)
     {
      rectangle(82,12,40,40);
      circle(520,32,20);
      }
    
    void module_graphique(void)
    {
       int gestionnaire = DETECT,mode,test,erreur_graphique;
    
       initgraph(&gestionnaire,&mode,"");
       if ((erreur_graphique = graphresult()) != grOk)
    
       {
          printf("ERREUR GRAPHIQUE : %s\n",grapherrormsg(erreur_graphique));
          getch();exit(1);
       }
    
       X=getmaxx();
       Y=getmaxy();
       C=getmaxcolor();
    }
    
    Le programme comporte surement des fautes mais j'ai besoin de l'executer pour les corriger ...

    Pleazz help !! j'ai besoin de travaillé sur ce programme ajd !!

    mercii
    the_quent1, 12 Novembre 2005
    #1
  2. Offline
    the_quent1 Elite
    enfaite lorseque je supprime les lignes
    Code:
    free(image_rect); 
    free(image_rond);
    le programmes passe !! mais le free est important pour libérer la mémoire non ??
    the_quent1, 12 Novembre 2005
    #2
  3. Offline
    personnellement, je trouve pas l'endroit (j'ai cherché vite) ou tu demandes de la mémoire (malloc)
    dania の悪夢, 12 Novembre 2005
    #3
  4. Offline
    the_quent1 Elite
    Code:
    image_rect=malloc(taille); 
    
    mais c'est bon j'ai enlevé les free et de toute facon j'ai changer le code source !!

    c'était les free qui bloquait ... pq ??? ca aucune idée :? (c'est mon 1er programme avec des malloc et des putimage :?)
    the_quent1, 12 Novembre 2005
    #4
Statut de la discussion:
Fermée.