曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5732|回复: 1
打印 上一主题 下一主题

gtk_combo_box_get_active_text 与 '\0' 不是 NULL ?

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2010-4-20 02:59:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
调试 GTK 的一个函数  gtk_combo_box_get_active_text ()

其中说明文档上说是,如果没有选择任何东西,返回 NULL,但实际实验的结果是 '\0' ,'\0' 算是一个字符,而不是 NULL。

像以下程序中(组合框操作):
[Plain Text] 纯文本查看 复制代码
url_in_combobox = gtk_combo_box_get_active_text(user_data);    
        if (url_in_combobox == NULL) {
            stream = fopen (filename, "w");
            fclose (stream);    
        } else {
            strcat (url_buf, filename);
            strcat (url_buf, html);
            strcat (url_buf, url_in_combobox);
            system (url_buf);
            g_free (url_in_combobox);
         }

上面,当组合框里未包含任何字符时,甚至鼠标指针不在组合框中,得到的 url_in_combobox 不是 NULL,因为程序总是跑在 eles {} 里边去。由此可见,返回值并不是 NULL 。

如果修改判断语句为 url_in_combobox[0] == '\0' 就可以看到 if 为真。

这说明了, gtk_combo_box_get_active_text() 返回的是 '\0' 空字符,而不是 NULL 指针,这个指针还是又所指的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-8 06:34 , Processed in 0.075441 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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