c++ - Use a variable from pointer that is pointed by a struct which (that structs') pointer is sent to a function that needs to use it -


welp, thats kind of pointerception.
so.
im using gtk+
in gtk define buttons this:

gtkwidget *button1, *button2; 

so need function do this. make struct hold pointer it
here is:

typedef struct userdata{     gtkwidget *button1, *button2; }userdata; 

i point pointers struct pointers main:

userdata data; data.button1 = button1; data.button2 = button2; 

then use struct gtk event:

g_signal_connect(g_object(window), "configure-event", g_callback(resetbuttonsize), &data); 

and here comes problem. want these variables sent function, example resize them this:

void resetbuttonsize(gtkwindow *window, gdkevent *event, gpointer data){     gtkwidget *button1 = data->button; } 

so like:

gtk_widget_set_size_request(button1, 40, 40); 

sadly, can not (gtkwidget *button1 = data->button;) because following compiler error:

/media/dysk250/pmanager/testfile/main.cpp|59|error: ‘gpointer {aka void*}’ not pointer-to-object type| 

can tell me im doing wrong? im newbie pointers, maybe resolve single pointer pointer, 1 brain understand happening , why code use wrong.

you need cast void* variable suitable pointer can dereferenced:

gtkwidget *button1 = static_cast<userdata*>(data)->button; 

Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -