从不同大小的整数转换为指针

时间:2014-02-11 10:24:26

标签: c glib

我正在尝试将int作为值gtree插入glib。我不应该如何分配和插入它。在这里你可以看到我尝试过的东西:

void readFilec(GTree *tree)
{
  FILE *fp = fopen("cfg/file.csv", "rb" );
  char * line = NULL;
  size_t len = 0;
  ssize_t read;

  if (fp == NULL)
  exit(EXIT_FAILURE);
  char *p1;
  int  p2;
  while ((read = getline(&line, &len, fp)) != -1)
  {
    printf("%s", line);
    p1 = strtok(line, "|");
    p2 = (int)atoi(strtok(NULL, "|"));
    g_tree_insert(tree,(gpointer *) g_strdup(p1), (gpointer *)  p2);

    printf("-%s%d ", p1, p2);

  }

  if (line)
  free(line);
  //exit(EXIT_SUCCESS);

}

我读过的文件看起来像那样:

cfg/file.csv
AA1.E|1 
AA2.E|2

1 个答案:

答案 0 :(得分:3)

尝试删除gpointer之后的*,因为它已经是一个空白*并添加'&'在p2面前得到它的地址。

g_tree_insert(tree, (gpointer) g_strdup(p1), (gpointer)  &p2);