c - How to access address of an array that is contained in a struct? -
i trying create program reading input file using getline.
i have created following struct
struct misc_struct { char *buf; file *some_input_file; };
in main file create buffer , multiple 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);
now in start function:
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); ... }
unfortunately crashing @ getline() call. don't have trouble accessing args->buf when need use &args->buf getline function crashes "pointer being realloc'd not allocated"
what should doing differently? thanks!
char buf[1024]; : : : pthread_arguments->buf = buf; getline(&args->buf,&len,args->some_input_file);
i suspect getline()
expects able free , realloc buffer given.
better give getline()
pointer null buffer can alloc needs.
pthread_arguments->buf = 0;
Comments
Post a Comment