CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • French Days
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • French Days
  • RetourHigh-Tech
    • French Days
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • 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
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : Faire une variable globale en C, c'est grave ?

News culture
La Planète des Singes : Le Nouveau Royaume - la révolution simienne est en marche !
DébutPage précedente
12
Page suivantePage suivante
lokilok lokilok
MP
Niveau 10
25 avril 2019 à 19:16:53

En fait je crois que tu comprends pas ce que c'est un singleton, un singleton c'est un type qui ne peut exister qu'en un seul exemplaire, donc par exemple si int était un singleton (comme ce que tu as essayé de faire dans ton bout de code) ça voudrait dire que tu ne pourrais avoir qu'un seul int dans tout ton programme, ce qui est bien évidemment faux.

Message édité le 25 avril 2019 à 19:17:09 par lokilok
MrAnge MrAnge
MP
Niveau 10
25 avril 2019 à 19:20:48

Ah non pas d'accord, si tu déclare un int ailleurs et qu'ils pointent sur la fonction y'a pas de raison que sa valeur change

#include <stdio.h>

int *SingletonEnC()
{
    static int instance = 42;
    
    return &instance;
}

int deuxiemeInt()
{
	int *tutu = 0;
	
	tutu = SingletonEnC();
}

int main(void) {
    // your code goes here
    int *toto = 0;
    
    toto = SingletonEnC();
    
    *toto = 53;
    deuxiemeInt();
    printf("%ld", *SingletonEnC());
    
    return 0;
    
}

La par exemple malgré l'appel au "singleton" dans la fonction deuxiemeInt bah ma valeur reste 53

Message édité le 25 avril 2019 à 19:21:31 par MrAnge
MrAnge MrAnge
MP
Niveau 10
25 avril 2019 à 19:22:26

Le 25 avril 2019 à 19:16:53 lokilok a écrit :
En fait je crois que tu comprends pas ce que c'est un singleton, un singleton c'est un type qui ne peut exister qu'en un seul exemplaire, donc par exemple si int était un singleton (comme ce que tu as essayé de faire dans ton bout de code) ça voudrait dire que tu ne pourrais avoir qu'un seul int dans tout ton programme, ce qui est bien évidemment faux.

Ah bah en effet si c'est sa j'ai pas compris ce qu'est un singleton :hap:
Pour ma défense je code en C au taff :hap:

DébutPage précedente
12
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment