CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

comprend pas les pointeurs intelligents

dezq
dezq
Niveau 7
19 janvier 2014 à 13:52:11

salut,

j'ai un peu du mal avec les ptr inteligents:

L'équivalent de:
int *a
c'est bien:
unique_ptr<int> a;
non ?

Mais par ex si je veux faire pointé ce pointeur vers un autre int et le modifier je fais comment ?

en gros je cherche l'équivalent de:
int b = 0;
int *a = &b;

merci

papy386
papy386
Niveau 10
19 janvier 2014 à 14:37:38

Bonjour

unique_ptr c'est une classe pour des pointeur unique, elle n'est donc pas prévus justement pour que 2 pointeurs partages la même mémoire.

Donc en théorie tu peut copier (std::move) b dans a, mais modifier la valeur pointer par a ne vas pas modifier la valeur pointer par b.

dezq
dezq
Niveau 7
19 janvier 2014 à 16:11:47

je voulais pas que 2 pointeurs partagent la meme memoire, je voulais qu'un pointeur pointe vers l'adresse d'une variable tout simplement.

en gros l'equivalent de:
int *a = &b;

mais c'est bon je crois que j'ai trouvé:

unique_ptr<int> a (&b);

papy386
papy386
Niveau 10
19 janvier 2014 à 17:26:49

gg

LEpigeon-888
LEpigeon-888
Niveau 12
19 janvier 2014 à 17:41:11

Nan mais nan, les unique_ptr tu les utilise que quand tu fais de l'allocation dynamique, donc ton cas utilise les pointeurs normaux :oui:

dezq
dezq
Niveau 7
19 janvier 2014 à 18:39:58

quel cas ? c'était juste un exemple pour tester

et j'ai bien besoin de l'alloc dynamique pour ce que je fais actuellement.

LEpigeon-888
LEpigeon-888
Niveau 12
19 janvier 2014 à 18:47:19

int b;
std::unique_ptr<int> a(&b);

Ça marche pas.

std::unique_ptr<int> a(new int);

Là ça marche :oui:

dezq
dezq
Niveau 7
19 janvier 2014 à 18:54:23

euh moi les deux marchent parfaitement:

int b = 0;
unique_ptr<int> a(&b);
++*a;
cout << b;

cela affiche 1 :ok:

LEpigeon-888
LEpigeon-888
Niveau 12
19 janvier 2014 à 18:57:40

Nan mais c'est pas fait pour être utiliser comme ça si tu veux :oui:

LEpigeon-888
LEpigeon-888
Niveau 12
19 janvier 2014 à 19:00:11

Et je croyais que ça planterais :( :hap:

Mais de toute façon c'est totalement inutile d'utiliser des unique_ptr dans ce cas là, t'utilise des pointeurs normaux avec * et basta :hap:

dezq
dezq
Niveau 7
19 janvier 2014 à 19:06:56

ou bien des references ^^ je sais qu'on l'utilise avec new pour l'alloc dynamique, et c'est comme ça que j'utilise t'inquiete ^^

c'etait juste pour tester.

LEpigeon-888
LEpigeon-888
Niveau 12
19 janvier 2014 à 19:57:40

Bah une référence ça se stock pas, enfin je pense pas, donc non c'pas vraiment le même type d'utilisation :hap:

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment