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 Discussion :

manque de mémoire ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 185
    Par défaut manque de mémoire ?
    Bonjour,
    J'essai d'éccrire un programme qui me génère un terrain, jutilise un tableau qui contient l'altitude à chaque point d'une grille de 513*513, j'ai voulu faire du 4096*4096 et j'ai obtenu un segmentation fault. J'ai essayé les deux codes suivant :
    Code «A» :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <stdlib.h>
    #include <stdio.h>
     
    void main (int argc, char *argv[])
    {
    	double			z[1023][1023]={0.0};
     
    	printf("Hell-o\n");
    }
    Code «B» :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <stdlib.h>
    #include <stdio.h>
     
    void main (int argc, char *argv[])
    {
    	double			z[1024][1024]={0.0};
     
    	printf("Hell-o\n");
    }
    A fonctionne mais B me retourne un segmentation fault. C'est comme si la taille de mon tableau était limité. manque de mémoire ? comment est-ce que je peux évaluer ça ?

    Ce que j'ai du mal à comprendre c'est que sous gimp je peux avoir plusieurs images ouvertes en même temps de tailles plus importantes, j'imaginais que une image sous gimp est comme un tableau en mémoire.

    Voici un exemple d'image que j'obtiens (mon programme n'est pas fini...)

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 969
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 969
    Par défaut
    Koa,

    Un tableau de double de taille 1024*1024, ça fait 1024*1024*8 = 8*388*608 octets.

    Tu exploses la pile réservée par défaut pour ton programme.

    2 solutions :

    - la mauvaise, augmenter la taille de la pile

    - la bonne, passer par une réservation dynamique


  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 185
    Par défaut
    Comme j'envisage à terme de pouvoir créer des terrains de tailles différentes durant l'exécution, je serai obligé d'utiliser l'allocation dynamique, alors si au passage ça règle mon problème actuel

    je vais coder ça pour voir ce que ça me donne !

    merci pour les infos

    EDIT ::

    Effectivement ça fonctionne! merci

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

Discussions similaires

  1. Plantage sans doute par manque de mémoire
    Par verbose dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 15/11/2007, 12h18
  2. Manque de Mémoire Virtuelle
    Par mayiba21 dans le forum Windows XP
    Réponses: 4
    Dernier message: 12/12/2006, 09h53
  3. [W2000 Pro] Manque de mémoire virtuelle empêche la connexion
    Par 2Eurocents dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 30/11/2006, 20h20
  4. Manque de mémoire
    Par GO dans le forum C++
    Réponses: 1
    Dernier message: 25/09/2006, 16h30
  5. Manque de mémoire virtuelle sur Win2000 pro
    Par annedjomo dans le forum Windows Serveur
    Réponses: 7
    Dernier message: 02/03/2005, 10h16

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