LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1855|回复: 2

指针数组如何赋值

[复制链接]
发表于 2007-1-5 21:30:29 | 显示全部楼层 |阅读模式
客套话不多说,先贴出程序。
//==========================================================================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,都指向了同一个字符串!不知道各位有没有什么比较方便的解决方法?
发表于 2007-1-5 23:23:28 | 显示全部楼层
strdup
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-5 23:54:45 | 显示全部楼层
谢谢楼上!我是新手+菜鸟
strcpy也可以达到要求,但是需要自己来malloc内存,管理起来一点都不方便!到头来,用指针数组还不如直接用二维数组来得直接,郁闷。不知道有没有string类型.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表