首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用指针元素检索链表中的数据

用指针元素检索链表中的数据
EN

Stack Overflow用户
提问于 2016-05-16 19:41:44
回答 2查看 64关注 0票数 1
代码语言:javascript
复制
#include<stdio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct trial{
   char *data;
   int save;
   struct trial *next;
};

struct trial *head = NULL;

int main (){
    int x, ctr, y;
    char filestr[500];
    char *data, *save, *filestr2;
    FILE *fp;
    fp = fopen("Untitled1.txt", "r");   
    printf("Count: ");
    scanf("%d", &x);
    while(x > 0){
        if(fgets(filestr, sizeof(filestr), fp) != NULL){
            data = strtok(filestr, " ");
            filestr2 = strtok(NULL, "");
            save = strtok(filestr2, "");
            printf("%s, %s", data, save);
            struct trial *link = (struct trial*) malloc(sizeof(struct trial));
            link->data = data;
            link->save = atoi(save);
            link->next = head;
            head = link;
        }
        x--;
    }
    printf("\n");
    struct trial *ptr = head;
    ctr = 0;
    while(ptr != NULL){
          printf("Data %d: %s, %d\n", ctr + 1, ptr->data, ptr->save);
          ptr = ptr->next;
          ctr++;
    }
return 0;
}
/*Untitled1.txt is as follows
dragon 12
shadow 19
spirit 6
wiser 4
civil 8
fairy 7
*/

下面是一个问题,当x=3时,它应该是:

计数:3

龙,12岁

影子,19岁

精神,6

数据1:精神,6

数据2:阴影,19

数据3:巨龙,12

但情况是这样的。

数据1:精神,6

数据2:精神,19

数据3:精神,12

为什么保存变量正在移动而*数据没有移动?我应该加些什么,放在哪里?谢谢你的帮助。抱歉,不必要的变量,它是一个整体的一部分。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-16 20:01:16

如前所述,strtok返回指向其第一个参数的指针。为了修复这个错误,复制您被插入的部分。简单地替换

代码语言:javascript
复制
link->data = data;

使用

代码语言:javascript
复制
link->data = strdup(data);

记得释放链接->数据。

票数 2
EN

Stack Overflow用户

发布于 2016-05-16 20:00:50

strtok不为它返回的字符串分配内存。它只会将指针返回到您给它的缓冲区。因此,您需要复制您希望保存的任何数据。

最简单的解决办法是改变:

代码语言:javascript
复制
link->data = data;

至:

代码语言:javascript
复制
link->data = strdup(data);

添加对来自NULLstrtok返回值的检查也是一个好主意。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37261975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档