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

Taille de tableau tres tres grand (BCB6)


Sujet :

C++Builder

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 25
    Points
    25
    Par défaut Taille de tableau tres tres grand (BCB6)
    Bonjour a tous,

    dans mon application que je developpe, j'ai besoin de creer une matrice carrée de taille 5000, en format double :

    double matrice[5000][5000]

    Mais quand je compile, cela provoque une erreur fatale!

    Ya-t-il une solution?

    Merci pour votre aide

    A bientot

    Jul

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 281
    Points : 11 029
    Points
    11 029
    Par défaut
    Oui. L'allocation dynamique:
    - à l'ancienne, qui impose plein de vérifications de succès, faire attention que tout est bien libéré
    - façon standard, demande un peu d'huile de coude std::vector<std::vector<T>>
    - boost::multi_array<> pour les tableaux "rectangulaires"
    - boost.ublas, Blitz++, ... pour les matrices mathématiques.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    salut

    merci pour ta réponse

    cependant, je suis débutant en C++, donc quelle est la facon la plus simple? as tu de la doc dessus?

    merci

    jul

  4. #4
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 237
    Points : 283
    Points
    283
    Par défaut
    Pour ma part j'utiliserai la méthode standart avec les vectors, qui font partis de la librairie standart.

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    double matrice[5000][5000]

    Mais quand je compile, cela provoque une erreur fatale!
    Au cas où ça t'intéresserait, je t'explique pourquoi.
    Tu demandes d'allouer une zone contigue de 200Mo sur la mémoire normale (si tes doubles font 8 octets).
    Même sur la mémoire libre, ça risque d'être difficile d'allouer une telle zone.

  6. #6
    Membre éclairé Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Points : 795
    Points
    795
    Par défaut
    Mais quand je compile, cela provoque une erreur fatale!
    Quelle est cette erreur? Quel compilo utilises-tu?
    Chez moi, sous Myngwin, l'erreur n'apparaît qu'à l'exécution...
    Je ne sais pas si c'est un oubli, mais il te manque un point-virgule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double matrice[5000][5000];

  7. #7
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Est-ce que toute les cases sont necessaires ou est-ce une matrice creuse?

  8. #8
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 281
    Points : 11 029
    Points
    11 029
    Par défaut
    La solution la plus simple est d'utiliser une lib spécialisée. Le plus difficile étant de choisir la lib et de l'installer. Sinon vecteur de vecteurs.

Discussions similaires

  1. Tri d'un tableau de tres grande taille
    Par highlight dans le forum C++
    Réponses: 10
    Dernier message: 19/04/2010, 11h18
  2. Transformer les elément d'un vector en tableau simple de grande taille
    Par kamilia_85 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 08/02/2009, 23h59
  3. taille d'un tableau 2d trop grande ?
    Par Tex-Twil dans le forum C++
    Réponses: 11
    Dernier message: 28/11/2005, 16h41
  4. Impression très très lente avec Samba
    Par Daav dans le forum Réseau
    Réponses: 4
    Dernier message: 29/12/2004, 18h45

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