Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2677 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Probleme de variable globale.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme de variable globale.

n°921060
Chronoklaz​m
Posté le 12-12-2004 à 16:48:31  profilanswer
 

J'ai un probleme avec une variable globale que je n'arrive pas a faire "atteindre" dans les autres fonction:
 

Code :
  1. main()
  2. /*-----*/
  3. {
  4.   Shape rect = ShapeCreate(RECTANGLE);
  5.  
  6.   init_graphics(400, 400);
  7. }


 
Si par exemple je veux changer ces attributs :
 

Code :
  1. /*------------------------------------------*/
  2. bouton_enfonce(int num_bouton, int x, int y)
  3. /*------------------------------------------*/
  4. /* Appele lorsqu'un des boutons de la souris a ete enfonce */
  5. {
  6.   printf("Bouton %d enfonce, pos (%d %d)\n", num_bouton, x, y);
  7.    
  8.   ShapeSetAttribute(rect, shape_x, x);
  9.   ShapeSetAttribute(rect, shape_y, y);
  10.  
  11.   ShapeDraw(rect);
  12.   ShapeDestroy(&rect);
  13.  
  14.   redraw_all(); /* je suis pas sur pour ce machin */
  15. }


 
Et là c'est le drame, gcc me dit qu'il ne reconnait pas rect dans bouton_enfonce, donc comment faire pour qu'il attrape le "rect" defini dans le main ?

mood
Publicité
Posté le 12-12-2004 à 16:48:31  profilanswer
 

n°921062
WhatDe
Posté le 12-12-2004 à 16:53:06  profilanswer
 

Rect n'est pas une variable globale puisqu'elle est déclarée dans la fonction main [:mlc]
Mets la au dessus du main().

n°921066
Chronoklaz​m
Posté le 12-12-2004 à 16:59:47  profilanswer
 

Ok, gcc me dit qu'il faut que ce soit une constante.
"initializer element is not constant"
 
Et autre chose mon prof me dit :
 
"Modifiez main.c pour que le rectangle soient en variable globale, créé une seule fois dans le main (avant  
init_graphics)."


Message édité par Chronoklazm le 12-12-2004 à 17:00:21
n°921068
Chronoklaz​m
Posté le 12-12-2004 à 17:03:11  profilanswer
 

Bon en fait je crois que c'est resolu :
 
Shape rect;
 
main(){
rect = ShapeCreate(RECTANGLE);
...
}
 
Il a l'air de kiffer comme ca...

n°921069
Chronoklaz​m
Posté le 12-12-2004 à 17:07:03  profilanswer
 

Autre chose ca veut dire quoi si j'ai un message du style :
 
"Segmentation fault (core dumped)"
 
Enfin c'est quel type de probleme generalement ?

n°921074
matafan
Posté le 12-12-2004 à 17:24:26  profilanswer
 

C'est que tu écrit où tu ne devrais pas. En dehors d'un espace aloué, dans un espace déja libéré...

n°921087
Chronoklaz​m
Posté le 12-12-2004 à 17:50:48  profilanswer
 

Ok ça marche.
 
Bon là je sais que c'est honteux mais quand j'ecris
 

Code :
  1. bool bouton_enf;
  2. main(){
  3. bouton_enf = false;
  4. ...
  5. }


 
Il me dis qu'il ne recnnait pas "false". Je comprends plus rien là :(


Message édité par Chronoklazm le 12-12-2004 à 17:53:43
n°921091
Taz
bisounours-codeur
Posté le 12-12-2004 à 18:10:50  profilanswer
 

#include <stdbool.h>

n°921092
Chronoklaz​m
Posté le 12-12-2004 à 18:13:49  profilanswer
 

Merci Taz.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Probleme de variable globale.

 

Sujets relatifs
Problème de tableau CSSProbleme de addActionListener [résolu]
toujours ptit probleme de scriptProblème Javascript, ouverture dans la même fenêtre !
Probleme menu déroulantVariable et nombre de caracteres
probleme de script[RESOLU]encore un probleme de script!
Probleme fgetsvariable globale, problème de link
Plus de sujets relatifs à : Probleme de variable globale.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR