我正在尝试创建一个使用 getline 从输入文件中读取的程序。
我创建了以下结构
struct misc_struct {
char *buf;
FILE *some_input_file;
};
在我的主文件中,我创建了一个缓冲区和多个 pthread。
char buf[1024];
FILE *some_input_file;
struct misc_struct *pthread_arguments;
...
pthread_arguments = (struct misc_struct *)malloc(sizeof(struct misc_struct));
pthread_arguments->buf = buf;
pthread_arguments->some_input_file = some_input_file;
pthread_create(&t1, NULL, start, (void *)pthread_arguments);
现在在我的启动功能中:
void *start(void *args)
{
size_t len;
struct misc_struct *pthread_arguments = (struct misc_struct *)pthread_arguments;
getline(&args->buf,&len,args->some_input_file);
...
}
不幸的是,我在这个 getline() 调用中崩溃了。我在访问 args->buf 时没有问题,但是当我需要将 &args->buf 用于 getline 函数时,它会因“未分配重新分配的指针”而崩溃
我应该做些什么不同的事情?谢谢!