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 :

[Tableau] taille maximum


Sujet :

C

  1. #1
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut [Tableau] taille maximum
    J'utilise Borlande C++ 5.02 avec Win2000
    projet: platform Win32
    Je voulais déclarer un tableau de 327 680 doubles en statique mais lors de la compilation, j'ai le message: écriture non autorisé à l'adresse xxxx

    Question: je voudrais savoir si le problème vient de la taille trop importante du tableau
    Si c'est le cas, quelle est la taille max
    Ou si le probleme est autre


    Merci de votre aide

  2. #2
    Membre éprouvé Avatar de Kimael
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Par défaut
    Tu as combien de Mo en RAM :

    désolé...
    C'est vrai que ça fait beaucoup de place quand même... Tu devrais chercher dans une doc C c'est le langage qui doit limiter ça, pas le système ! J'espère......

  3. #3
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut
    Je ne pense pas que ce soit le système: 256 Mo de Ram et elle n'est pas pleine.


  4. #4
    Membre émérite
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Par défaut
    T'as vraiment besoin de mettre ca en statique ? Tu peux pas faire une alloc dynamique et calculer tes variables (ca prend trop de temps) ?
    Sinon, tu as peut-etre des options dans ton compilo pour specifier la taille du modele. Car ton tableau va prendre deja 1 Mo en memoire.

    Au fait, c'est le compilateur qui te donne un message d'erreur, ou il plante et c'est windows qui te dit que Borland a plante ?

  5. #5
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut
    C'est le compilateur qui plante.
    pour ce qui est des options, je n'ai rien trouvé

  6. #6
    Membre éprouvé Avatar de Kimael
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Par défaut
    Citation Envoyé par vasilov
    Je ne pense pas que ce soit le système: 256 Mo de Ram et elle n'est pas pleine.

    Je voulais dire que j'espère que ce n'est pas le système qui interdit (NON AUTORISEE tu as dit) de créer une zone de 1Mo en RAM (mal exprimé, c'est ça de déconner aussi....) !

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 6
    Par défaut
    pourrait tu poster ton code car ton probleme peut provenir de diverses sources

  8. #8
    JEG
    JEG est déconnecté
    Membre chevronné
    Avatar de JEG
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 211
    Par défaut
    Je te dirais bien de faire une allocation dynamique à la place de statique, ca marcherait tout de suite mieux je pense....

  9. #9
    Membre émérite
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Par défaut
    Citation Envoyé par vasilov
    C'est le compilateur qui plante.
    pour ce qui est des options, je n'ai rien trouvé
    Essaye une version plus recente du compilo, ou d'aller sur le site de borland pour voir si y'a des corrections/FAQ ?

    Sinon, tu peux toujours essayer de taper ton message d'erreur dans google avec Borland 5.02 pour voir si t'es pas le seul.

  10. #10
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Par défaut
    Citation Envoyé par Kimael
    Citation Envoyé par vasilov
    Je ne pense pas que ce soit le système: 256 Mo de Ram et elle n'est pas pleine.

    Je voulais dire que j'espère que ce n'est pas le système qui interdit (NON AUTORISEE tu as dit) de créer une zone de 1Mo en RAM (mal exprimé, c'est ça de déconner aussi....) !
    Ben si c'est sur la pile ca fait bcp quand meme...

  11. #11
    HRS
    HRS est déconnecté
    Membre chevronné
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Par défaut
    en tableau statique, bcc5.5 se plante non pas à la compile mais à l'exécution

    avec un tableau dynamique, ça passe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       int main () {
          //double tab [327680]; // se plante à l'exécution
          double * tab;
          int i;
          tab = new double [327680];
          for (i=0;i<327680;i++)
             tab [i] = 1.0;
          return 0;
       }

  12. #12
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Par défaut
    Citation Envoyé par HRS
    en tableau statique, bcc5.5 se plante non pas à la compile mais à l'exécution

    avec un tableau dynamique, ça passe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       int main () {
          //double tab [327680]; // se plante à l'exécution
          double * tab;
          int i;
          tab = new double [327680];
          for (i=0;i<327680;i++)
             tab [i] = 1.0;
          return 0;
       }
    tu dois pouvoir augmenter la taille de la pile pour que ca passe (si ca a un interet)

  13. #13
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut
    merci beaucoup , ca marche tres bien maintenat.
    Je ne connaissais pas l'operateur new et n'utiliser que malloc pour l'allocation dynamique .
    J'étais également en c et pas c++ node.

    merci

  14. #14
    Membre éprouvé Avatar de Kimael
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Par défaut
    Citation Envoyé par vasilov
    merci beaucoup , ca marche tres bien maintenat.
    Je ne connaissais pas l'operateur new et n'utiliser que malloc pour l'allocation dynamique .
    J'étais également en c et pas c++ node.

    merci
    ARf, New et Delete c'est de l'objet !
    OBJET POWER !!!!!
    ARf

  15. #15
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut
    Même si new et delet sont de l'objet, l'allocation dynamique avec new marche pour des tableaux beaucoup plus grand.

    En effet new est beaucoup plus puissant que malloc

    Merci à HRS qui m'a fait découvrir mon promier opération d'objet
    (Donc mon source en en .cpp )

  16. #16
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 755
    Billets dans le blog
    3
    Par défaut
    Même si new et delet sont de l'objet, l'allocation dynamique avec new marche pour des tableaux beaucoup plus grand.
    Je vois pas pourquoi new pourrait allouer de plus grand tableaux que malloc. D'autant plus que souvent new se sert de malloc pour allouer ...

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

Discussions similaires

  1. Taille maximum des champs courants
    Par sabbish dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 29/11/2013, 14h48
  2. taille maximum de tableau
    Par astroflo dans le forum Fortran
    Réponses: 2
    Dernier message: 24/06/2009, 14h37
  3. Comment obtenir un tableau à taille variable ?
    Par marsupilami34 dans le forum Langage
    Réponses: 6
    Dernier message: 27/06/2005, 16h03
  4. taille maximum d'un div
    Par Anduriel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 13/05/2005, 22h32
  5. Taille maximum de tableau en Delphi
    Par yannick37 dans le forum Langage
    Réponses: 5
    Dernier message: 03/03/2004, 14h18

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