一个关于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;
}