Bonjour à tous je suis devouring 22 célibataire et libre comme l'air (c'est vrai en plus) j'ai un léger soucis avec le fonction de malloc.
je travail sous mac (donc xcode) et lorsque je lors de l'exécution de mon programme je crée un tableau de 1 millions sur 1 millions (un tableau 2D) et comme je m'y attend ca marche pas (j'ai que 2 go après tout).
par contre je m'attendais pas à avoir ce message
Projet Automate(1077) malloc: *** mmap(size=400003072) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
normalement quand l'ordi n'a pas de mémoire à allouer il dit a mon programme revient "non je n'ai pas de mémoire a te preter" et l'affaire est close non?
alors pourquoi ce message d'erreur et comment l'eviter?
voilà le code en question si ca peut servir
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
19
20
21
22
23 do { continu = 1; printf("\nVeuillez saisir la longueur de la grille : "); longeur = saisieLong(); printf("\nVeuillez choisir la largeur de la grille : "); largeur = saisieLong(); grille1 = malloc(longeur * sizeof(long)); for(long cpt = 0 ; cpt < longeur ; cpt ++) grille1[cpt] = malloc(largeur * sizeof(long)); grille2 = malloc(longeur * sizeof(long)); for(long cpt = 0 ; cpt < longeur ; cpt ++) grille2[cpt] = malloc(largeur * sizeof(long)); if(grille1 != NULL && grille2 != NULL) continu = 0; else { printf("\nGrille trop grande pas assez de mémoire veuillez rentrez des valeurs moins importantes\n"); } }while(continu);
Partager