この値を呼び出すと、最初の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;
}
}
最初のメッセージとサーバ・メッセージ構造体:
// 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)の代わりにcurr_msg 'の – sigmalha
= NULL'が使用' curr_msg-> next_msg!= NULL' – jboockmann
デバッガ....................... –