C GdkPixbuf集合

C GdkPixbuf集合,c,gtk,gdk,C,Gtk,Gdk,我需要创建GdkPixBuf集合。我尝试在GList-mw->disp_列表中保存pixbufs: GtkTreeIter iter; int i = 0; for (i; i < g_list_length(list) - 1; ++i) { char* file = image_list_get_current_file_path( list ); mw->p1 = gdk_pixbuf_new_from_file(fil

我需要创建GdkPixBuf集合。我尝试在GList-mw->disp_列表中保存pixbufs:

GtkTreeIter iter;
int i = 0;

for (i; i < g_list_length(list) - 1; ++i)
{                       
  char* file = image_list_get_current_file_path( list );

  mw->p1 = gdk_pixbuf_new_from_file(file,NULL);
  mw->p1 = scale_pix(mw->p1,128);

  mw->disp_list = g_list_append (mw->disp_list, mw->p1);

  if (!mw->img_list->current->next )
      image_list_get_first(mw->img_list);
  else
      image_list_get_next(mw->img_list);
}
GtkTreeIter-iter;
int i=0;
对于(i;ip1=gdk_pixbuf_new_from_file(file,NULL);
mw->p1=刻度盘(mw->P1128);
mw->disp\U list=g\U list\U append(mw->disp\U list,mw->p1);
如果(!mw->img\U列表->当前->下一步)
图像列表(mw->img列表);
其他的
图像列表获取下一步(mw->img列表);
}
其中p1-它是GtkPixBuf*

但当我尝试在另一个函数中使用mw->disp_list时,我发现它是空的。怎么了


谢谢。

目前我只看到一个问题,它与循环有关,应该是:

for (i = 0; i < g_list_length(list); ++i)
for(i=0;i

问题可能是-1:如果列表包含1个元素,则根本不循环,因为1-1=0且
0<0
为false。

首先,我注意到for循环很奇怪;如果在for之外初始化循环变量,则不需要for的第一部分:
for(;i<…
可以,而
for(i;i)关于循环的另一个注释;
i
是正确的;除非使用-1,否则您的意思是希望循环长度比列表长度少一个(假设您希望使用i作为“索引”);在本例中,您将错过最后一个可索引元素;如果没有-1,则列表中的每个元素将循环一次)