C언어 걸음마를 하고 있는 초보자입니다...
저의 상식선과 저의 생각은 맞는데 ㅠㅠ 컴파일러는 아니라고 빠꾸시킵니다 ㅠㅠ
제가 인터넷도 많이 뒤지고 생각도 정말 골똘히 했는데도 진전이 전혀 없어 이렇게 질문하게 되었습니다..ㅠㅠ
제가 하려고 하는 것은 0.1초에 한번씩 에일리언 노드를 5개씩 생성하고
0.3 초에 한번씩 에일리언 노드 1개씩 삭제하려고 하였으나
빨갛게 표시한 부분이 문제인듯 합니다만
도대체 무엇이 문제인건지 알수가 없습니다 ㅠㅠ
// sungtae001.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "windows.h"
#include "stdlib.h"
#include "time.h"
#include "conio.h"
typedef struct _node
{
int key;
struct _node *next;
}node;
node *head;
node *tail;
node *del_p;
node *print_p;
int alien = 0;
void head_add()
{
node *t;
t = (node*)malloc(sizeof(node));
t->key = 1;
head = t;
tail = t;
}
void insert_nodes(int k)
{
node *v;
v = new node;
tail->next = v;
v->key = k;
tail = v;
}
void del(int k)
{
int a = k - 1;
del_p = head->next;
while (1)
{
if (del_p->key == k)
{
node *b;
b = del_p->next;
del_p->next = del_p->next->next;
free(b);
printf("에일리언 %d 가 죽었습니다. \n", k + 1);
break;
}
del_p = del_p->next;
}
}
void print()
{
int temp = 0;
print_p = head->next;
temp = print_p->key;
printf("추가 된 노드의 값은 %d 입니다. \n", temp);
while (1)
{
if (print_p->next == NULL)
{
break;
}
print_p = print_p->next;
temp = print_p->key;
printf("추가 된 노드의 값은 %d 입니다. \n", temp);
}
}
int main(void)
{
srand((unsigned)time(0));
int count = 0;
int time = 0;
head_add(); // 해드 선언
while (1)
{
Sleep(50);
time++;
if (time % 2 == 0)
{
for (int i = 0; i < 5; i++)
{
alien++;
insert_nodes(alien);
}
print();
}
if (time % 6 == 0)
{
// del(rand() % alien);
}
}
printf("끝");
return 0;
}
개판인 코드 봐주셔서 정말 죄송스럽습니다