gpt4 book ai didi

c++ - strtok 读取文件时出现段错误

转载 作者:行者123 更新时间:2023-11-30 17:46:56 25 4
gpt4 key购买 nike

在 strtok 上出现段错误,我将输入字符串 lyne 定义为 char 数组而不是指针,但似乎不起作用。这是 C 和 Linux 中的

    typedef struct 
{
int x;
char *y;
} child;

typedef struct{
child *details;
} parent;


fp = fopen(filename,"r"); // read mode
char lyne[25];
char *item;
fgets(lyne,25,fp);

parent record;
record.details= malloc (5 * sizeof(child));

while (fgets(lyne,25,fp)) {

printf("test %s \n",lyne);

item = strtok(lyne," ");

strcpy(record.details->y,item);//seg error on this line
}
fclose(fp);


my file looks like this
file#1
ABC 100
BCE 200


OUTPUT:
test ABC 100

Segmentation fault

最佳答案

您尚未将内存分配给结构子成员“y”,因为您的结构是

typedef struct 
{
int x;
char *y;
} child;

你要做的是:

record.details->y = malloc(sizeof(char)*(strlen(item) + 1));
strcpy(record.details->y,item);

关于c++ - strtok 读取文件时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19085557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com