#include <stdio.h>
#include <stdlib.h>
typedef struct List
{
struct List *before_List;
int Data;
struct List *next_List;
}List;
unsigned int count = 0;
enum cData {SUCCESE=1, FALSE}CData;
int makeList(List ** Head, int iData)
{
int *pData = 0;
int size_Data = 0 ;
List ** copy_Head = Head;
List *realList = 0;
static List *beforeData = 0;
int * a = 0;
size_Data = sizeof(List);
count++;
*copy_Head = (List *)realloc(*copy_Head,((count)*size_Data));
if((*copy_Head) == NULL)
{
printf("realloc False\n");
exit(0);
}
else
{
if(count == 1)
{
(*copy_Head) ->Data = iData;
(*copy_Head) ->before_List = (*copy_Head);
(*copy_Head) ->next_List = NULL;
beforeData = *copy_Head;
}
else
{
pData=(int*)*copy_Head;
realList = (List*)(pData+(3*(count-1)));
realList->before_List = beforeData;
realList->Data = iData;
realList->next_List = *copy_Head;
(*copy_Head)->before_List = realList;
realList->before_List->next_List = realList;
beforeData = realList;
}
}
return SUCCESE;
}
int main()
{
int input_Data = 0,fuction_result = 0;
static List * List_Data = 0;
while(input_Data != EOF)
{
printf("Data input : ");
scanf("%d",&input_Data);
fuction_result = makeList(&List_Data,input_Data);
if(fuction_result != 1) printf("Fuction return False\n");
else printf("Fuction return SuCCeSE\n");
}
return 0;
}
한번 만들고 싶어서 만들어 봤네요 ㅎㅎ
처음에 realloc을 개념을 착각해서 ㅠㅠ 삽질좀 했네요 ㅎㅎ
realloc은 한번에 공간을 재할당한다는것을 잃지 마세요 ^^
'Soft Ware > C 언어!!' 카테고리의 다른 글
구조체 패딩에 대해 알아 보겠습니다 ㅠㅠ (0) | 2012.01.27 |
---|---|
부동 소수점에 대해서 파헤쳐보았습니다 !!! (0) | 2012.01.27 |
퀵정렬 이해 및 소스 (0) | 2011.12.12 |
동적할당 과 랜덤함수를 이용하여 데이터값 넣기 (0) | 2011.12.12 |
int main(int argc, char *argv[]) 에 대해서 (0) | 2011.12.12 |