Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    gtk_widget_get_size_request: mi da Segmentation fault

    È praticamente da giorni che tento di fare una cosa, tentado diverse strade che poi a un pelo dalla soluzione ho dovuto abbandonare, ma questa sembra quella giusta; solo un problemino:
    gtk_widget_get_size_request mi da il fatale Segmentation fault che non mi fa neppure partire il programma; ho ridotto tutto al minimo per porre l'accento su quel comando:
    codice:
    #include <gtk/gtk.h>
    
    GtkWidget *win;
    
    main(int argc, char *argv[])
    {
    	
    	gtk_init(&argc,&argv);
    
    	gint bw,bh;
    	bw=400; bh=400;
    	
    	win=gtk_window_new(GTK_WINDOW_TOPLEVEL);
    	gtk_widget_set_size_request(win,bw,bh);
    
    	gint *w,*h; //La funzione richiede due gint *
    	gtk_widget_get_size_request(win,w,h); //Errore di segmentazione
    	
    	g_signal_connect(G_OBJECT(win),"destroy",G_CALLBACK(gtk_main_quit),NULL);
    	
    	gtk_widget_show_all(win);
    	gtk_main();
    }
    http://developer.gnome.org/gtk/2.24/...t-size-request

    Spero che possiate aiutarmi. Vi ringrazio in anticipo.

  2. #2
    w e h non puntano a niente, quando li passi come argomento scrivi memoria a caso.
    Prova così:
    codice:
    #include <gtk/gtk.h>
    
    GtkWidget *win;
    
    main(int argc, char *argv[])
    {
    	
    	gtk_init(&argc,&argv);
    
    	gint bw,bh;
    	bw=400; bh=400;
    	
    	win=gtk_window_new(GTK_WINDOW_TOPLEVEL);
    	gtk_widget_set_size_request(win,bw,bh);
    
    	gint w, h; //La funzione richiede due gint *
    	gtk_widget_get_size_request(win,&w,&h); //Errore di segmentazione
    	
    	g_signal_connect(G_OBJECT(win),"destroy",G_CALLBACK(gtk_main_quit),NULL);
    	
    	gtk_widget_show_all(win);
    	gtk_main();
    }

  3. #3
    Grazie per l'interesse clynamen, ma ho risolto inizializzando i puntatori a NULL:

    codice:
    #include <gtk/gtk.h>
    
    GtkWidget *win;
    
    main(int argc, char *argv[])
    {
    	
    	gtk_init(&argc,&argv);
    
    	gint bw,bh;
    	bw=400; bh=400;
    	
    	win=gtk_window_new(GTK_WINDOW_TOPLEVEL);
    	gtk_widget_set_size_request(win,bw,bh);
    
    	gint *w=NULL;
    	gint *h=NULL;
    	gtk_widget_get_size_request(win,w,h);
    	
    	g_signal_connect(G_OBJECT(win),"destroy",G_CALLBACK(gtk_main_quit),NULL);
    	
    	gtk_widget_show_all(win);
    	gtk_main();
    }
    w e h vengono richiesti puntatori dalla funzione, forse però appunto intendeva come hai fatto tu (io di puntatori non ne capisco molto a dire il vero).
    Tuttavia gtk_widget_get_size_request non va bene come soluzione del mio problema.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Originariamente inviato da Raam General
    gtk_widget_get_size_request: mi da Segmentation fault
    Il linguaggio va riportato anche nel titolo, come da Regolamento.

    Qui l'ho aggiunto io. In futuro, provvedi tu.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.