2010-07-02 35 views
0

我需要創建GdkPixBuf集合。我試圖挽救pixbufs在爲Glist - MW〜> disp_list:GdkPixbuf集合

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); 
} 

其中P1 - 這是GtkPixBuf *。

但是當我嘗試在另一個函數中使用mw-> disp_list時,我發現它是NULL。怎麼了?

謝謝。

+0

作爲第一件事,我注意到for循環的奇怪;你不需要for的第一部分,如果你在它外面初始化循環變量:'for(; i <...'是可以的,而for(i; i <...'也可以,但是我在沒有理由的情況下進行評估;通常你寫這樣一個循環爲'for(i = 0; i <...',你可以簡單地寫成int i;'而不是'int i = 0;' – ShinTakezou 2010-07-02 10:34:04

+0

另一個關於循環;'我 ShinTakezou 2010-07-02 10:37:26

回答

1

此刻,我看到的只是一個問題,它是關於循環應該是:

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

的問題可能是-1:如果列表中包含1元,你不循環可言,因爲1-1 = 0並且0 < 0是錯誤的。