Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - [C] Dubbio sui puntatori
Forum - C/C++ - [C] Dubbio sui puntatori

Avatar
ulysses (Normal User)
Newbie


Messaggi: 16
Iscritto: 30/01/2012

Segnala al moderatore
Postato alle 12:47
Lunedì, 30/01/2012
Nonostante abbia letto molte guide, ho sempre un dubbio con i puntatori.
Prendiamo ad esempio un codice gtk:

Codice sorgente - presumibilmente Plain Text

  1. GtkWidget *window;
  2.  
  3.  gtk_init (&argc, &argv);
  4.  
  5.  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  6.  gtk_window_set_default_size (GTK_WINDOW(window), 250, 250);
  7.  gtk_window_set_title (GTK_WINDOW(window), "Ciao Mondo delle Gtk+!");
  8.  gtk_widget_show (window);



La mia domanda è: perché i widget sono dichiarati come puntatori? Ho provato a dichiarare una finestra come una normale variabile, e mi restituisce errore.


Gli uomini sono donne che non ce l'hanno fatta.
[Cit. Groucho Marx]
PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Up
2
Down
V
Segnala al moderatore
Postato alle 14:04
Lunedì, 30/01/2012
Allora no ... la

gtk_window_new

crea un nuovo oggetto GtkWidget e ne restituisce il puntatore in memoria.

Ahhh ho capito!! - ulysses - 30/01/12 21:47


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 13:11
Lunedì, 30/01/2012
Errore ? Quale errore ?

main.c: In function ?main?: main.c:11:12: error: incompatible types when assigning to type ?GtkWidget? from type ?struct GtkWidget *? main.c:12:3: error: cannot convert to a pointer type main.c:13:3: error: incompatible type for argument 1 of ?gtk_widget_show? /usr/include/gtk-2.0/gtk/gtkwidget.h:85 - ulysses - 30/01/12 13:34
Ma con il codice che hai mostrato o con un altro codice? - nessuno - 30/01/12 13:37
Con quel codice... Mi è bastato togliere l'asterisco dalla variabile window nella prima riga... - ulysses - 30/01/12 13:50


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM