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 :

Problème de taille de tableau


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 23
    Points : 10
    Points
    10
    Par défaut Problème de taille de tableau
    Bonjour je travaille avec Dev-C++ et je suis sous windows j'aimerais savoir pourquoi mon programme ne marche pas je pense que c'est dû à la constante de taille que j'ai défini qui est trop importante mais je ne suis pas sûr. Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    int main(){
    	const int NBMAX=1000;
                    int tab_indice[NBMAX];
    	Position3D tab_pos[NBMAX];
    	int graphe[NBMAX][NBMAX];
                    printf("salut");
                    //...
                    //opération sur mes tableau
                    //...
                    return 0;
    }
    Résultat : "Salut" n'apparait même pas à l'écran et j'ai droit à un message de Windows "Veuillez signaler ce problème a Microsoft bla bla bla Envoyer le rapport ne pas envoyer".

    Sinon quand je débugue j'obtiens le message suivant : "An Access Violation (Segmentation Fault) raised in your program."

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    int graphe[NBMAX][NBMAX];

    tu déclares sur la pile un tableau de 4 millions d'octets... Sous Windows, une pile fait un Mo environ---> Débordement de pile...

    Mon conseil: déclare tes tableaux en static (aucun problème si tu ne t'amuses pas à jouer avec les threads...)

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par Médinoc
    Mon conseil: déclare tes tableaux en static (aucun problème si tu ne t'amuses pas à jouer avec les threads...)
    Mon conseil : alloue ton tableau dynamiquement (malloc()).

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    On peut aussi faire ça en effet... (mais ici, ça a des inconvénientsi (plus dur de gérer graphe[a][b]) pour une utilité ici relative (le nombre demandé n'est pas si dynamique que ça, puisqu'il est contant)

  5. #5
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Médinoc :
    ...(plus dur de gérer graphe[a][b])...
    pas très excessif comme difficulté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int (* graphe)[NBMAX] = malloc(NBMAX*NBMAX*sizeof(int));
    ....
     graphe[a][b] 
    ....
    L'inconvénient en static, c'est qu'on bloque la mémoire juqu'à la fin du programme alors que peut être elle ne servira plus à rien ensuite. Ca dépend du problème dans sa version complète.

Discussions similaires

  1. [Debutant][C] Problème de taille de tableau
    Par althora dans le forum Linux
    Réponses: 2
    Dernier message: 15/12/2008, 22h13
  2. Problème de taille de tableau sous IE 7
    Par chatlumo dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 01/08/2008, 15h22
  3. Problème avec taille de tableau et checkbox
    Par narcis60floyjo dans le forum Langage
    Réponses: 5
    Dernier message: 31/03/2008, 16h13
  4. problème de taille de tableau
    Par tromaltsec dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 13/12/2007, 09h29
  5. Problème de taille de tableau
    Par k-nine dans le forum C
    Réponses: 6
    Dernier message: 25/09/2005, 09h16

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