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++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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! )

+ 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