【问题标题】:g_strjoin crashes when joining two strings连接两个字符串时 g_strjoin 崩溃
【发布时间】:2014-09-09 20:17:23
【问题描述】:

我正在使用glib-2.0 连接两个简单的字符串。这是我的代码:

int main() {

    gchar *a = "12";
    gchar *b = "1231212";

    printf("a: %s\n", a);
    printf("b: %s\n", b);
    gchar *c = g_strjoin(",", a, b);
    printf("c: %s\n", c);

    return EXIT_SUCCESS;
}

它在g_strjoin(",", a, b) 崩溃。核心文件没有显示太多信息:

Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `./server'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  strlen () at ../sysdeps/x86_64/strlen.S:137
137     FIND_ZERO

我做错了吗?我在 Fedora 20 上使用 glib2-2.38.2-2.fc20.x86_64

【问题讨论】:

    标签: c glib


    【解决方案1】:

    由于g_strjoin() 可以加入任意数量的字符串,所以列表必须以NULL 结束:

     gchar *c = g_strjoin(",", a, b, NULL );
    

    【讨论】:

      猜你喜欢
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-01
      • 2013-11-05
      • 2011-08-29
      相关资源
      最近更新 更多