Maison  >  Article  >  développement back-end  >  Comment déclarer correctement plusieurs pointeurs vers le même objet en C ?

Comment déclarer correctement plusieurs pointeurs vers le même objet en C ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 01:59:27693parcourir

How to Correctly Declare Multiple Pointers to the Same Object in C  ?

Clarification des déclarations de pointeurs d'objets multiples

En C , lors de la déclaration de plusieurs pointeurs sur une seule ligne, il est essentiel d'en saisir les nuances. Dans l'exemple fourni, la question se pose concernant les différences entre deux extraits de code apparemment similaires.

Exemple 1 :

<code class="cpp">private:
    sf::Sprite* re_sprite_hair, re_sprite_body, re_sprite_eyes;</code>

Cette déclaration vise à créer trois pointeurs vers sf::Objets Sprite. Cependant, cela crée faussement un pointeur et deux objets. L'astérisque () qui suit immédiatement sf::Sprite s'applique uniquement à la première variable (re_sprite_hair) et non aux suivantes.

Pour rectifier cela, la déclaration doit être révisée comme suit :

<code class="cpp">private:
    sf::Sprite* re_sprite_hair, *re_sprite_body, *re_sprite_eyes;</code>

Ici, chaque variable se voit explicitement attribuer un astérisque, créant trois pointeurs distincts.

Exemple 2 :

<code class="cpp">public:
    Entity()
    {
        re_sprite_eyes = new sf::Sprite();
        re_sprite_hair = new sf::Sprite();
        re_sprite_body = new sf::Sprite();
    }

private:
    sf::Sprite* re_sprite_hair;
    sf::Sprite* re_sprite_body;
    sf::Sprite* re_sprite_eyes;</code>

Cette version déclare trois pointeurs correctement selon l'usage prévu. Les pointeurs sont correctement initialisés dans le constructeur à l'aide de l'opérateur 'new'.

Conclusion :

Lors de la déclaration de plusieurs pointeurs sur une seule ligne, il est crucial de placer l'astérisque adjacent à chaque variable pour éviter toute confusion et assurer une gestion précise de la mémoire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn