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 :

realloc, si nouveau bloc alloué, le contenu de l'ancien est recopié dans le nouveau ?


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 256
    Points : 91
    Points
    91
    Par défaut realloc, si nouveau bloc alloué, le contenu de l'ancien est recopié dans le nouveau ?
    Bonjour tout le monde,

    Je pense que oui, mais : quand un bloc en mémoire est re-alloué avec la fonction realloc, si elle définit un nouveau bloc, est-ce que le contenu de l'ancien bloc est bien recopié dans le nouveau ?

    Merci.
    A+, Pierre.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 48
    Points : 54
    Points
    54
    Par défaut
    Bonjour,

    Oui, il y a bien recopie.

    a+

  3. #3
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    Par défaut
    Salut,

    Je pense que realloc ne fait la recopie que si il n'y a plus assez de place après la zone donnée. Donc ça depend des cas, mais la recopie ne se fait pas toujours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    avant la reallocation :
    | zone allouée     | espace vide    | autre zone ...
    il reste peut etre de la place :
    | zone allouée             | ide    | autre zone ...
    là ya plus de place, on change de zone et on recopie :
    | zone allouée                                        | espace vide...

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Pierre.g
    quand un bloc en mémoire est re-alloué avec la fonction realloc, si elle définit un nouveau bloc, est-ce que le contenu de l'ancien bloc est bien recopié dans le nouveau ?
    Et si tu lisais la doc des fonctions avant de t'en servir ?

    http://man.developpez.com/
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Gruik
    Je pense que realloc <...>
    Ne pas 'penser que'. Lire la doc please...
    Pas de Wi-Fi à la maison : CPL

  6. #6
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    Par défaut
    J'ai lu la doc et ça m'a confirmé..
    En fait j'en étais sur, mais je prefere dire "je pense" que risquer de me faire casser par Emdel si je me plante, il ya eu trop de fois où je me suis planté.

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Gruik
    J'ai lu la doc et ça m'a confirmé..
    En fait j'en étais sur, mais je prefere dire "je pense" que risquer de me faire casser par Emdel si je me plante, il ya eu trop de fois où je me suis planté.
    Dans les domaines techniques définis (il y a une norme), c'est une mauvaise solution (dire "je pense") à un vrai problème (si je me plante).

    La bonne solution, c'est d'être sûr de soi, mais vraiment sûr. Au moindre doute, lire la doc (la bonne, le standard, c'est mieux que les man, qui se réfèrent souvent à une implémentation donnée...).
    Pas de Wi-Fi à la maison : CPL

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 256
    Points : 91
    Points
    91
    Par défaut
    Merci.

    J'avais bien lu la doc, mais je ne suis pas arrivé à traduite la fin de cette phrase que je pense répondais à ma question :
    "The contents of the object will remain unchanged up to the lesser of the new and old sizes."

    Donc c'est pour ça que j'ai préféré demandé confirmation.

    A+, Pierre.

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    C'est simple, tu prends la plus petite taille entre l'ancienne et la nouvelle (le plus souvent, on utilise realloc() pour agrandir, donc l'ancienne taille sera la plus petite), et Toutes les données jusqu'à cette taille-là seront conservées.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Bonjour,

    Citation Envoyé par Pierre.g
    J'avais bien lu la doc, mais je ne suis pas arrivé à traduite la fin de cette phrase que je pense répondais à ma question :
    "The contents of the object will remain unchanged up to the lesser of the new and old sizes."
    Suffit d'avoir la doc en français :
    Citation Envoyé par [URL=http://man.developpez.com/man3/realloc.3.php]man realloc[/URL]
    realloc() conserve le contenu de la zone mémoire minimum entre la nouvelle et l'ancienne taille.

Discussions similaires

  1. [XL-2007] Sauvegarder nouveau classeur avec nom contenu dans cellule du classeur courant
    Par cathodique dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/04/2013, 10h27
  2. VBA interroger le contenu d'un cellule pour trier en un nouveau tableau
    Par Mosko45 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/11/2012, 16h50
  3. Dupliquer le contenu d'un serveur (Debian3.1) sur un nouveau
    Par Nelix dans le forum Administration système
    Réponses: 2
    Dernier message: 19/10/2011, 21h10
  4. Adsense, nouveau bloc : hausse puis baisse
    Par bthivent dans le forum Publicité
    Réponses: 0
    Dernier message: 23/01/2010, 18h44

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