Вызов этого значения работает для первых 2 вызовов, а затем вызывает ошибку сегментации.Связанный список функций функции приводит к ошибке сегментации
void insert_message(char *id, char *message) {
if (first_message == NULL) {
first_message = malloc(sizeof(struct server_message));
strcpy(first_message->id, id);
strcpy(first_message->message, message);
first_message->next_msg = NULL;
} else {
struct server_message *curr_msg = first_message;
while (curr_msg != NULL) {
curr_msg = curr_msg->next_msg;
}
curr_msg->next_msg = malloc(sizeof(struct server_message));
strcpy (curr_msg->next_msg->id, id);
strcpy (curr_msg->next_msg->message, message);
curr_msg->next_msg->next_msg = NULL;
}
}
Первая структура сообщений и Server Message:
// used to store messages.
struct server_message {
char message[80];
char id[80];
struct server_message *next_msg;
};
//head of the list
static struct server_message *first_message = NULL;
в то время ----> в то время как (! Curr_msg-> next_msg = NULL) – sigmalha
Вместо 'curr_msg = NULL' использовать' curr_msg-> next_msg! = NULL' – jboockmann
Отладчик ....................... –