一个关于GTK 申请内存的问题
struck   cc 
 { 
       int   a; 
       char   c; 
 }; 
 cc   *fun() 
 { 
          cc   *a=new   cc; 
          return   a; 
 }//在C/C++里面   这里的返回值一定会报错的         
 //原因应该是   函数栈   不同   导致申请的地址空间在   下面的main()函数里面无法找到吧?? 
 void   main() 
 { 
       cc   *b; 
       b=fun(); 
 }   
 //下面用GTK写的代码      
 GtkWidget   *fun() 
 { 
       GtkWidget   *button; 
       button=gtk_button_new(); 
       gtk_widget_show(button); 
 return   button; 
 }   
 int   main(int   argc,char   *argv[]) 
 {   
          GtkWidget   *button; 
          button=fun(); 
          ... 
          return   0; 
 } 
 //这两个错误是不是一样的?   难道这个GTK不是犯了一样的错误吗?   但是为什么GCC貌似没有报错?? 
 //小弟新手      望高人指点
------解决方案--------------------struct cc 
 { 
   int a; 
   char c; 
 };   
 cc *fun() 
 { 
    cc *a=new cc; 
    return a; 
 }   
 int main() 
 { 
     cc *p=fun(); 
     p-> a=12; 
     p-> c= 'b '; 
     printf( "%d,%c ",p-> a,p-> c); 
     return 0;        
 } 
 用DEV C++编译没有错误啊。     
 下面改为: 
 GtkWidget *fun() 
 { 
   GtkWidget *button; 
   button=gtk_button_new_with_label( "OK "); 
   gtk_widget_resize(button); 
   return button; 
 }   
 int main(int argc,char *argv[]) 
 {   
    GtkWidget *button; 
    button=fun(); 
    ... 
    return 0; 
 }