Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 从不同大小的整数强制转换为指针_C_Glib - Fatal编程技术网

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

C 从不同大小的整数强制转换为指针,c,glib,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;

我试图将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

尝试删除gpointer后面的*,因为它已经是空的*,并在p2前面添加“&”以获取其地址

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

形成您为
|
创建的strok()文件,但它在代码中似乎出现了两次,而在文件中却是一次。因此它也不正确。您可以传递char@JKB,它应该如何编写?
p1=strok(第,“|”行)
是正确的,但第二个可能是
p2=(int)atoi(strtok(NULL)(“”)。否则插入错误的值。