getline を使用して入力ファイルから読み取るプログラムを作成しようとしています。
次の構造体を作成しました
struct misc_struct {
char *buf;
FILE *some_input_file;
};
私のメイン ファイルでは、バッファーと複数の pthreads を作成します。
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 へのアクセスに問題はありませんが、getline 関数に &args->buf を使用する必要がある場合、「realloc'd されているポインターが割り当てられていません」でクラッシュします。
どうすればいいですか?ありがとう!