begin process at 2012 05 27 21:11:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

 > UTILISATION DE MALLOC

UTILISATION DE MALLOC


 Information sur la source

Note :
Aucune note
Catégorie :Système Classé sous :malloc, allocationdynamique Niveau :Débutant Date de création :05/09/2003 Date de mise à jour :05/09/2003 21:36:01 Vu :7 804

Auteur : nomenclator

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Sert juste à montrer l'utilisation de malloc qu est pas toujours tres clair à comprendre,et pour les noobs ca peut tjrs servir de connaitre ca pour realiser des jeux et bien autres progs à mon avis.

Source

  • #include <graphics.h>
  • #include <stdlib.h>
  • #include <stdio.h>
  • #include <conio.h>
  • #include <dos.h>
  • #define dif 5
  • void initgraph()
  • {
  • /* request autodetection */
  • int gdriver = DETECT, gmode, errorcode;
  • /* initialize graphics and local variables */
  • initgraph(&gdriver, &gmode, "");
  • /* read result of initialization */
  • errorcode = graphresult();
  • if (errorcode != grOk) /* an error occurred */
  • {
  • printf("Graphics error: %s\n", grapherrormsg(errorcode));
  • printf("Press any key to halt:");
  • getch();
  • exit(1); /* terminate with an error code */
  • }
  • }
  • void main (void)
  • {
  • void *arrow; //sert a initialiser le tampon, en param¦tre dans une procedure ou fonction tu le definis de la meme maniere et ca passe
  • char buff[15];
  • unsigned int size; // taille de l image , au max 64ko -1, a ne pas depasser sinon ca fait de la caca
  • int x;
  • initgraph();
  • /* draw the image to be grabbed */
  • circle(5,5,2); // dessine un cercle au point(5,5)
  • /* calculate the size of the image */
  • size = imagesize(0,0,9,9); // ici tu calcules l'espace necessaire pour le stocker, en gros il fo que tu prennes des points qui encadrent le cercle, (0,0,9,9), c est au pif mais ca passe
  • /* allocate memory to hold the image */
  • arrow = malloc(size);
  • // sprintf(buff,"test :",arrow);
  • // outtextxy(200,200,buff); la ca affiche rien sur la taille de la memoire, comprend pas d ailleurs
  • /* grab the image */
  • getimage(0,0,9,9,arrow); // tu prends l image au meme coordonn,es que imagesize car tu prends la meme taille d ,cran en m,moire
  • x=0;
  • putimage(0,0,arrow,XOR_PUT); // la tu mets ton image ou tu ve , la c pour supprimmer le cercle de depart qui est cr,e (par recopie)
  • /* repeat until a key is pressed */
  • while (!kbhit())
  • {
  • /* erase old image */ // l ai fait de maniere differente de l exemple au niv affiche et efface, vu l incrementation de x qui n est pas faite au meme endroit
  • putimage(x + dif,0 ,arrow,XOR_PUT); // ici tu affiches a chaque fois l image precedente crée par la suite au 2 eme putimage (increment, avec x et dif pour voir que la bille se deplace de 5 en 5 sur l axe des x)
  • delay(5); // mieux mettre un delai sinon ca speed trot
  • if (x>getmaxx()) // pour repartir a 0 a chaque fois que le max des x est atteint , ainsi pour recommencer a afficher au point 0,0 de notre buffer memoris,
  • x=0;
  • /* plot new image */
  • putimage(x + dif,0 ,arrow, XOR_PUT);// ici tu efface a l endroit ou tu etais precedemment
  • x+=dif;// increm x de 5 a chaque fois avec la const dif pour afficher le cercle . 5 de plus en x
  • }
  • /* clean up */
  • free(arrow);// libere le nana invisible
  • closegraph();
  • }
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>


#define dif 5


void initgraph()
{


   /* request autodetection */
   int gdriver = DETECT, gmode, errorcode;

   /* initialize graphics and local variables */
   initgraph(&gdriver, &gmode, "");

   /* read result of initialization */
   errorcode = graphresult();
   if (errorcode != grOk)  /* an error occurred */
   {
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1); /* terminate with an error code */
   }

}
void main (void)
{

   void *arrow;  //sert a initialiser le tampon, en param¦tre dans une procedure ou fonction tu le definis de la meme maniere et ca passe
   char buff[15];

   unsigned int size; // taille de l image , au max 64ko -1, a ne pas depasser sinon ca fait de la caca
   int x;

   initgraph();

   /* draw the image to be grabbed */
   circle(5,5,2); // dessine un cercle au point(5,5)

   /* calculate the size of the image */
   size = imagesize(0,0,9,9);  // ici tu calcules l'espace necessaire pour le stocker, en gros il fo que tu prennes des points qui encadrent le cercle, (0,0,9,9), c est au pif mais ca passe

   /* allocate memory to hold the image */
   arrow = malloc(size);

 //  sprintf(buff,"test :",arrow);
 //  outtextxy(200,200,buff);  la ca affiche rien sur la taille de la memoire, comprend pas d ailleurs



   /* grab the image */
   getimage(0,0,9,9,arrow); // tu prends l image au meme coordonn,es que imagesize car tu prends la meme taille d ,cran en m,moire
   x=0;

   putimage(0,0,arrow,XOR_PUT); // la tu mets ton image ou tu ve , la c pour  supprimmer le cercle de depart qui est cr,e (par recopie)
   /* repeat until a key is pressed */
   while (!kbhit())
   {
      /* erase old image */ // l ai fait de maniere differente de l exemple au niv affiche et efface, vu l incrementation de x qui n est pas faite au meme endroit
      putimage(x + dif,0 ,arrow,XOR_PUT); // ici tu affiches a chaque fois l image precedente crée par la suite au 2 eme putimage (increment, avec x et dif pour voir que la bille se deplace de 5 en 5 sur l axe des x)
      delay(5); // mieux mettre un delai sinon ca speed trot

      if (x>getmaxx()) // pour repartir a 0 a chaque fois que le max des x est atteint , ainsi pour recommencer a afficher au point 0,0 de notre buffer memoris,
      x=0;



      /* plot new image */
      putimage(x + dif,0 ,arrow, XOR_PUT);//  ici tu efface a l endroit ou tu etais precedemment

      x+=dif;// increm x de 5 a chaque fois avec la const dif pour afficher le cercle . 5 de plus en x

   }

   /* clean up */
   free(arrow);// libere le nana invisible
   closegraph();

}



 Sources du même auteur

Source avec Zip ARKANOID TRES SIMPLIFIÉ AVEC BUGS
ESSAI POUR DEVELOPPER UN JEU D' AVION

 Sources de la même categorie

Source avec Zip Source avec une capture INFORMATION PROCESSEUR (CPUID) par Devils_Tiger
Source avec Zip Source avec une capture LECTURE TEMPÉRATURE PROCESSEUR par Devils_Tiger
Source avec Zip Source avec une capture LECTURE FRÉQUENCE PROCESSEUR par Devils_Tiger
Source avec Zip Source avec une capture UNE LISTE HÉTÉROGÈNE DOUBLEMENT CHAINÉE par pgl10
Source avec Zip Source avec une capture POUR AFFICHER LES CARACTÈRES ACCENTUÉS SOUS WINDOWS EN MODE ... par pgl10

 Sources en rapport avec celle ci

Source avec Zip LIBRAIRIE POUR ÉVITER LES FUITES MEMOIRES par glipper

Commentaires et avis

Commentaire de D1m3x le 05/09/2003 22:30:48

Pas mal du tout, mais bon malloc est tout de même une fonction que tout le mondre devrait apprendre le plus vite possible, je sais que c'est ce que tu as voulu essayer de faire mais ce n'est pas tout à fait l'exemple le plus attirant:
1. Code très long, après un moment si les newbie ne comprenne pas ils en ont forcément marre de lire alors fodrait racourcir ^^
2. pourquoi utiliser du graphiques pour apprendre malloc, il existe bien d'autres possibilitées!!!

bon ben pour le reste ton code est vmt très interessant ^^ lol, malheureusement dos.h n'est pas donné avec tous les comilo :'(lol

Continue comme ca, bon boulot ;)

Commentaire de equimose le 06/09/2003 00:16:05

Merci c trop cool!
Je crois que ton code est tout a fait ce dont j'avais besoin...
chui pas sur d'avoir tout panné mais je travail dessus...

Si ta un code plus simple a porté de main : balance le... ca sera tjr ca

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

malloc de messagerie [ par Apollon ] peut-on m'expliquer comment mallocer la messagerie Synapse ! Probleme malloc [ par zzzzzz ] <img src=/imgs2 pb malloc [ par youpiyoyo ] d'apres msdn char *string; /* Allocate space for a path name */ string = malloc( _MAX_PATH );deja ca chez moi ca compil pas me compilo me di impos fonction malloc [ par Trollien ] Salut,j'aurai une question concernant le fonctionnement de l'allocation de memoire en c.Si j'alloue de la memoire avec la fonction malloc(...), est ce Probleme malloc [ par ceeno ] Bonjour à tous,Je cherche a crée un tableau dont j'augmente la mémoire à chaque fois que je veu y enregistrer une nouvelle valeur.Mais je n'y arrive p pb malloc ss linux [ par Ricool ] Salutje suis en train de faire un petit prog qui manipule des matrices, mais de temps en temps pr creer une matrice le prog plante ("segmentation faul malloc et calloc [ par Darkneon ] Quelqu'un peut m'expliquer la difference?Party 'till you drop !!! [C] Pb Malloc avec des variables... variables[?] [ par Cow_B ] Salut à tous !! :)J'ai un tout petit souci :je voudrais faire une saisie au clavier d'un texte dont je ne connais pas la longueur. Voilà ce que je fai Probleme d'allocation de mémoire dynamique (malloc/free) [ par PhantomPowaa ] Bonjour,J'ai un petit probleme avec les fonctions malloc et free dans certains de mes programmes. Apparement le malloc s'effectue correctement, mais a Problème malloc sous RedHat 7.3 [ par deuchman ] Salut à tous !Voilà, j'ai un problème avec un programme C sous une RedHat 7.3.Lorsque j'utilise la fonction mallc pour allouer de la mémoire à un tabl


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales