我试图将自定义结构添加到定义为
的g_ptr_array中union response {
int address;
entry_p ent;
};
typedef struct quad_{
char * operation;
union response resp;
entry_p arg1;
entry_p arg2;
}quad;
问题在于使用功能
g_ptr_array_add(gaQuadList,(gpointer)s_quad);
我收到以下警告:
GLib-CRITICAL **:g_ptr_array_add:断言' rarray'失败
因此在使用时
s_quad = (singleQuad)g_ptr_array_index(gaQuadList,0);
导致分段错误
我的问题是结构没有插在g_ptr_array上,或者我没有正确插入数组上的结构
我检查的内容是我可以单独打印四边形,这里的最终目标是我可以使用foreach函数打印数组的每个元素
答案 0 :(得分:0)
断言失败是您需要查看以诊断此问题的方法。
GLib-CRITICAL **:g_ptr_array_add:断言'rarray'失败
查看the code for g_ptr_array_add()
表明此断言失败意味着gaQuadList
为NULL
。即,您尚未首先分配GPtrArray
实例,或者以某种方式用NULL
覆盖了该实例。
您是否事先在任何地方调用g_ptr_array_new_with_free_func()
来分配数组?