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 :

dépassement capacité winXP


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Homme Profil pro
    autodidacte
    Inscrit en
    Mars 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Mars 2011
    Messages : 95
    Par défaut dépassement capacité winXP
    Bonjour,

    Je (re)code un solveur de mots mêlés en C. C'est mon 3è code. J'ai implémenté un algo (ésotérique) pour les deux premiers codes (+-350 lignes)
    On m'a proposé un algo plus élégant qui est nettement plus court.

    La taille des données max est M=50 et N=25.

    Voilà ce que j'obtiens, le 3è algo (l'élégant) me fait dépasser la capacité de mémoire de mon win XP. Les pointeurs sont codés sur 16bits. A l'analyse, c'est logique, puisque la mémoire allouée est de l'ordre de (1,5*sizeof(char)+sizeof(int))*(M+N)*(M.N) (--> 515.625, plus grand que 2^16)

    Les codes non élégants requièrent (8*sizeof(int)+sizeof(char))*M*N (-->41250, sous 2^16).

    Je me dis que Win XP est deprecated, mais je me demande aussi :que penser d'un code qui résoud une grille de 50*25 caractères pour un problème linéaire mais qui ne tourne pas sur une machine de 2006 ????

    Voilà quelle approche privilégier ?

    Bien à vous,

  2. #2
    Invité
    Invité(e)
    Par défaut
    salut,

    500kB c'est rien, change plutot ta datastructure.
    Au lieu d'allouer sur un espace contigu, fais plutot plein de petites alloc!

  3. #3
    Membre éprouvé

    Homme Profil pro
    autodidacte
    Inscrit en
    Mars 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Mars 2011
    Messages : 95
    Par défaut
    Citation Envoyé par galerien69 Voir le message
    Au lieu d'allouer sur un espace contigu
    J'ai surtout changé le compilo. Mon TurboC++ (1991) travaille en 16 bits
    Avec gcc les adresses utilisables sont de 32 bts.

    Mon problème est de choisir l'algo et il s'agit d'un compromis élégance-complexité

    Maintenant, je dois choisir entre deux alternatives:
    pour une grille rectangulaire de taille M*N, il faut trouver K mots.

    1 codée et validée) # if : M*N*(8*K+32)
    2 élégante en construction) # if : M*N*(8*K + 6*(M+N))

    Ah oui, le but de l'affaire est d'avoir un code pédagogique. Quelle option choisir ?

  4. #4
    Expert confirmé

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

    Si c'est pour être pédagogique, la solution est particulièrement simple : diminuer la taille de la matrice.

    D'autre part, pourquoi persister à utiliser un compilateur qui ne connaît que le 16 bits ?

    (Tant que tu y es, tu pourrais virer XP et remettre MS-DOS )

  5. #5
    Membre éprouvé

    Homme Profil pro
    autodidacte
    Inscrit en
    Mars 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Mars 2011
    Messages : 95
    Par défaut
    Citation Envoyé par droggo Voir le message
    D'autre part, pourquoi persister à utiliser un compilateur qui ne connaît que le 16 bits ?
    En effet, j'utilise GCC depuis quelques heures. Vive les 32bits. (Quelques minutes après mon post, je me suis rendu compte de l'erreur )

    Comment réduire la taille de la matrice ? Chaque élément est pertinent.

    Ex de grille M=N=8:

    EELLERIG
    TTNBPBSM
    ERTEEAEE
    GOCERRHH
    UEIDLUEC
    OAIAABMM
    RNNLNTAA
    ELLIPROT

    k mots à trouver:

    bar
    raie
    plie
    tanche
    merlan
    murene
    rouget
    ablette
    sardine
    eperlan
    girelle
    torpille

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

Discussions similaires

  1. Checksum - Pb dépassement capacité variable
    Par dede38440 dans le forum VB.NET
    Réponses: 0
    Dernier message: 22/08/2014, 13h43
  2. Constante locale et dépassement capacité du tas
    Par Catheral29 dans le forum Général Java
    Réponses: 5
    Dernier message: 24/07/2014, 17h19
  3. [XL-2007] VBA : dépassement capacité calcul moyenne
    Par BaelBender dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/06/2014, 15h28
  4. [XL-2010] DEB Boucle dépassement capacité
    Par torquemada dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/04/2013, 18h12
  5. détection de dépassement de capacité
    Par tut dans le forum C++
    Réponses: 10
    Dernier message: 01/12/2004, 22h11

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