- 论坛徽章:
- 0
|
我的这个程序在编译后运行 为什么会出现段错误?
但是我用GDB时 一步一步运行 为什么又可以? 问题出在那里?
程序如下:
typedef struct Stru
{
GtkWidget * button;
GtkWidget * label;
GtkWidget * vbox;
} Stru_t, * pStru ;
GtkWidget * create_struc(pStru object,char * buttonname, char * labeltext);
void set_label_button(pStru object,char * text);
//-----------------------------------
#include <gtk/gtk.h>;
#include "strcut.h"
GtkWidget * create_struc(pStru ps,char * buttonname, char *labeltext)
{
GtkWidget * box;
box = gtk_vbox_new(FALSE,0);
ps->;vbox = NULL;
ps->;button = gtk_button_new_with_label( buttonname);
gtk_widget_show(ps->;button);
gtk_box_pack_start(GTK_BOX(box),ps->;button,TRUE,TRUE,0);
ps->;label = gtk_label_new(labeltext);
gtk_widget_show(ps->;label);
gtk_box_pack_start(GTK_BOX(box),ps->;label,TRUE,TRUE,0);
return box;
}
void set_label_button(pStru object,char * text)
{
gtk_label_set_text(GTK_LABEL(object->;label),text);
}
int main( int argc ,char * argv[])
{
GtkWidget * window;
GtkWidget * box;
pStru ps;
gtk_init(&argc,&argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(window),"destroy",GTK_SIGNAL_FUNC(gtk_exit),NULL);
box = create_struc(ps,"button","label" ;
gtk_container_add(GTK_CONTAINER(window),box);
gtk_widget_show(box);
set_label_button(ps,"change" ;
gtk_widget_show(window);
gtk_main();
return (0);
} |
|