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 :

Question d'un quizz sur new


Sujet :

C++

  1. #1
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut Question d'un quizz sur new
    Bonjour
    Que faut il répondre à cette question? J'hésite. Merci

    Question :

    L'opérateur new alloue de la mémoire?


    Réponse :

    Il alloue une zone mémoire nécessaire à stocker le pointeur retourné.
    Il alloue une zone mémoire correspondant à la taille occupée par le type concerné.
    Il alloue la zone mémoire nécessaire à stocker le pointeur retourné ainsi qu'une zone correspondant à la taille occupée par le type concerné.
    Il alloue une zone mémoire de taille fixe qui sera agrandie ultérieurement et automatiquement lorsque cela sera nécessaire.

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Aucune, new essay de créer un objet du type indiqué. Selon le cas il peut y avoir une étape d'allocation (d'une zone mémoire de la taille du type indiqué) et/ou d'une initialisation (et d'autre étape si tu as un placement new personnel)

    - Il peut ne pas y avoir d'allocation lors d'un placement new, le placement new "usuel" par exemple
    - Il peut ne pas y avoir d'initialisaion, par exemple lors d'une default initialisation d'un type primitif (genre new int; l'entier n'est pas initialisé, mais new int(); il le sera à la valeur 0).

    Et si l'on considère l'opérateur new en lui même sans la syntaxe qui lui est associé (donc utilisation sous la forme ::operator new(sizeof(int)); et pas new int; par exemple), alors il n'y a pas d'étape d'initialisation.

    La réponse la plus proche est donc la 2, la 3 devient plus proche sur une instruction comme int* i = new int(); ou il y aura allocation d'une zone mémoire pour stocker le pointeur à cause du int* i =, mais ce n'est pas lié directement à new.

  3. #3
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    OK merci pour la réponse.

    J'ai issue cette question de:
    http://www.pactenovation.fr/quizz/

    J'en ai une autre:

    Que fait delete p ?

    Réponse :

    Cette instruction détruit la donnée pointée par p et met le pointeur à NULL.
    Cette instruction détruit la donnée pointée par p.
    Cette instruction détruit uniquement le pointeur p.
    Cela dépend du type de la donnée pointée.

    Je répondrais 2 moi.

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Je répondrais comme toi.

    Mais après les avoir faits, il me semble qu'il y a des erreurs dans les tests, et des questions purement inutiles.

  5. #5
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Idem, 2 semble être la solution attendue.

    Sinon je rejoins le point de vue de Flob90 sur ces tests.

  6. #6
    Membre chevronné

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par défaut
    Salut,
    Et pourquoi pas 4 au cas ou delete est surdéfini pour le type pointé par p? ( c'est pas une affirmation, c'est une question! )

  7. #7
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Oui, vu comme ca new et delete peuvent faire n'importe quoi. Mais fondamentalement new sert essay de créer un objet et delete le détruit, ils peuvent faire autre chose mais ils ne sont pas fait pour ca.

  8. #8
    Membre chevronné

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par défaut
    Oui en effet, FloB90.
    Mais après les avoir faits, il me semble qu'il y a des erreurs dans les tests, et des questions purement inutiles.
    Après, j'ai la même opinion que toi sur ces tests.

  9. #9
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    j'en ai trouvé d'autres pire:

    http://www.mycppquiz.com/

  10. #10
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Celui-là est bien mieux :

    - Les questions concernent des points de syntaxes et de fonctionnement précis
    - Les réponses sont expliquées, et des références à la norme données
    - Il n'y a pas de question stupide avec des expressions illisibles que tu n'écriras jamais ou des codes avec plein d'identifiant avec le même noms (il y en a quelques un mais ils restent réalistes)
    - Il n'oublie pas qu'il y a des cas de comportement indéfinie et des éléments qui dépendent de l'architecture

    En clair, si tu réponds tout juste du premier coup c'est que tu es bien réveillé et que tu connais bien le fonctionnement du C++.

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

Discussions similaires

  1. question sur new et delete
    Par yann458 dans le forum C++
    Réponses: 15
    Dernier message: 09/08/2014, 19h52
  2. Question sur "new" et les tableaux
    Par Pandi_Panda dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 27/05/2012, 12h42
  3. Petite question sur 'new'
    Par yvancoyaud dans le forum Flex
    Réponses: 5
    Dernier message: 21/05/2012, 12h09
  4. Question sur new
    Par deubelte dans le forum C++
    Réponses: 4
    Dernier message: 19/05/2011, 14h06
  5. question (peut-être idiote) sur les vues
    Par LadyArwen dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/03/2003, 10h35

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