Soyez le premier à donner votre avis sur cette source.
Snippet vu 4 580 fois - Téléchargée 32 fois
// Il est souvent utile dans un programme // de vouloir allouer de la memoire. // pour cela on utlilise la fonction 'malloc'. // On va faire notre nouveau 'malloc'. // Car la fonction 'malloc' peut retourner NULL, // Et ceci nous oblige a toujours tester la valeur // de retour.Cela est neanmoins rare. #include <stdlib.h> // malloc,exit #include <stdio.h> // printf #include <conio.h> // getch //----------------------------------------------- // MALLOC //----------------------------------------------- void *Malloc(size_t SizeOfMalloc) { // pointeur sur la zone memoire allouee. void *p; // on alloue. p = malloc(SizeOfMalloc); // on teste si cela n'a pas reussi if(p == NULL) { // un message printf("Impossible d'allouer %d octets de memoire !\n",SizeOfMalloc); // on attend getch(); // ceci est rare, donc on peut ce permettre // de quitter tout le programme dans le cas echeant. exit(1); } // sinon on retourne le pointeur. return p; } //----------------------------------------------- // MAIN //----------------------------------------------- int main(int argc,char **argv) { // voici des varibles a plusieurs types. char *a; int *b; long *c; double *d; float *e; // on alloue de la memoire pour chacune des variables. (1000000 de chaque) a = Malloc(sizeof(char ) * 1000000); b = Malloc(sizeof(int ) * 1000000); c = Malloc(sizeof(long ) * 1000000); d = Malloc(sizeof(double) * 1000000); e = Malloc(sizeof(float ) * 1000000); // on teste si un des pointeurs est nuls. if(! (a && b && c && d && e) ) { printf("BUG : Notre malloc n'aurait pas du\n"); printf("retourner NULL (sous aucun pretexte) !\n"); } else { printf("Aucun pointeur est nul.\n"); printf("Notre malloc a l'air de marcher ...\n"); } // on libere les zones de memoire allouees free(a); free(b); free(c); free(d); free(e); // on attend. getch(); return 0; }
Personnellement,
j'ai résolu le pb avec des macros et des exceptions...
donc, il n'y a pas forcément sortie du prg...
allez donc jeter un oeil sur cette page:
http://www.cppfrance.com/code.aspx?ID=18786
Magicalement
t'as raison, je suis en general du même point de vu mais ce matin il était tôt et bon j'avai pas envie de faire l'extrèmiste...en plus les bonnes habitudes c'est au debut k'il faut les prendre ;)
Comme vous voudrez !
MOI ca me sert tout le temps !
...
(j'ai compris votre point de vue !)
IL FAUT FAIRE ATTENTION À NOTRE JOLIE PETITE RAM!!!
Même si elle est libérer à la fin du prog, quand il ce ferme ...
Mais, j'appuie Peak pour le début de sont commentaire, OO
@++;
~(.:: NitRic ::.)~
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.