|
|
客套话不多说,先贴出程序。
//==========================================================================start
1 #define MAXFILE 10
2 int cnt=0;
3 static char *path[MAXFILE];
4 void file_ok_sel( GtkWidget *w,
GtkFileSelection *fs )
{
5 if(cnt==MAXFILE)
{
6 g_print ("reach the max file counts!\n");
7 return;
}
8 path[cnt] = (char*)gtk_file_selection_get_filename(GTK_FILE_SELECTION(fs));
9 g_print ("%s\n", path[cnt]);
10 cnt++;
}
//==========================================================================end
上面是gtk文件选择框点确定按钮的一个回调函数,每次点确定,选定一个文件都会运行这个函数一次。
问题出在第8行,给path[cnt]赋值的时候,第一次选择文件aaa,path[0] = 0x40278380,值为aaa,当第二次选择bbb时,path[1] = 0x40278380,值变成了bbb,也就是说地址0x40278380内存的值为bbb.如此循环下去,path[n]都为0x40278380,都指向了同一个字符串!不知道各位有没有什么比较方便的解决方法? |
|