I currently have the following structure;
During compilation, arrays of structures are made. The following is the simplest example:
Usually these are fixed, the dimension of the array defined in the code itself. The GtkDrawingArea widget has no default signals as the process is left to the coder. I want to pass this feature onto the Tcl/Gnocl scripter, so I need to expand the above static declaration as needed.
For instance, I might want to append
to the array. I know that I should use realloc or g_realloc to achieve this task, but my attempts fail. This is the snippet in my source that I’m working on:
When compiled, I get the following error: “incompatible types in assignment”.
What’s going wrong?
typedef struct GnoclOption_
{
const char *optName;
enum GnoclOptionType type;
const char *propName;
gnoclOptFunc *func;
enum GnoclOptionStatus status;
union
{
gboolean b;
gint i;
gdouble d;
gchar *str;
Tcl_Obj *obj;
} val;
} GnoclOption;
During compilation, arrays of structures are made. The following is the simplest example:
static GnoclOption drawingAreaOptions[] =
{
{ "-tooltip", GNOCL_OBJ, "", gnoclOptTooltip },
{ NULL },
};
};
Usually these are fixed, the dimension of the array defined in the code itself. The GtkDrawingArea widget has no default signals as the process is left to the coder. I want to pass this feature onto the Tcl/Gnocl scripter, so I need to expand the above static declaration as needed.
For instance, I might want to append
{“-motion”, GNOCL_OBJ,””,gnoclOptOnMotion}
to the array. I know that I should use realloc or g_realloc to achieve this task, but my attempts fail. This is the snippet in my source that I’m working on:
/* get the total number of items in the array */
gint n = sizeof (drawingAreaOptions) / sizeof(GnoclOption);
/* allocate more memory to the array to hold one more entry */
drawingAreaOptions = g_realloc( &drawingAreaOptions, (gint) (n+1 * sizeof(struct GnoclOption_)));
drawingAreaOptions[n].optName = “-motion”;
drawingAreaOptions[n].type = GNOCL_OBJ;
drawingAreaOptions[n].propName = "";
drawingAreaOptions[n].func = gnoclOptOnMotion;
drawingAreaOptions[n].type = GNOCL_OBJ;
drawingAreaOptions[n].propName = "";
drawingAreaOptions[n].func = gnoclOptOnMotion;
When compiled, I get the following error: “incompatible types in assignment”.
What’s going wrong?
Comments