下面是我的代码。我正在尝试main_thread获取用户输入,存储在 中global_variable,然后打印出来。但是,在获得输入后,我的打印输出是分段错误。有人有什么想法吗?
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
char* global_variable;
void *first_thread(void *ptr) {
    printf("%s \n", (char *)ptr);
    pthread_exit(NULL);
}
void *second_thread(void *ptr) {
    printf("%s \n", (char *)ptr);
    pthread_exit(NULL);
}
void *third_thread(void *ptr) {
    printf("%s \n", (char *)ptr);
    pthread_exit(NULL);
}
void *main_thread() {
    printf("Thread 1: Please enter a line of text [Enter \"Exit\" to quit]\n");
    fgets(global_variable, 999, stdin);
    printf("%s", global_variable);
    pthread_exit(NULL);
}
int main () {
    pthread_t t_m, t1, t2, t3;
    //const char *m1 = "Thread 1", *m2 = "Thread 1", *m3 = "Thread 3";
    int cr1, cr2;
    //creating threads
    cr1 = pthread_create(&t_m, NULL, main_thread, NULL);
    //cr1 = pthread_create(&t1, NULL, first_thread, NULL);
    //cr1 = pthread_create(&t2, NULL, second_thread, NULL);
    //cr1 = pthread_create(&t3, NULL, third_thread, NULL);
    //threads created
    pthread_join(t_m, NULL);
    printf("Global Variable: %s", global_variable);
    exit(0);
    return 0;
}