Trying to create a double linked list nd have the following
Code:
typedef struct Numbers
{

    int Num;
    struct Numbers *Next;
    struct Numbers *Previous;

} Number;

Number * GetMemory();
void CreateHead( Number *, int );
void CreateNode( Number *, int );
void AppendtoList( Number *, Number *, int );
void ReadList( Number * );
void DistroyList( Number * );

int main()
{
    Number *Head = NULL, *Tail = NULL;

    for ( int RecNum = 1, i = 0; i < 10; i++ )
    {
        AppendtoList( Head, Tail, RecNum );
        RecNum++;
    }

    ReadList( Head );
    DistroyList( Tail );

    return 0;
}

Number * GetMemory()
{
    return ( Number * ) malloc ( sizeof( Number ) );
}

void CreateHead( Number *Tmpptr, int x )
{
    Tmpptr->Num = x;
    Tmpptr->Next = NULL;
    Tmpptr->Previous = NULL;
}

void CreateNode( Number *TmpPtr, int x)
{
    TmpPtr = GetMemory();
    TmpPtr->Previous = NULL;
    TmpPtr->Next = NULL;
    TmpPtr->Num = x;
}

void AppendtoList( Number *HPtr, Number *TPtr, int x )
{
    if ( HPtr == NULL )
    {
        HPtr = GetMemory();
        if ( HPtr != NULL )
        {
            CreateHead( HPtr, x );
            TPtr = HPtr;
        }
        else
        {
            printf("error getting memory!\n");
        }
    }
    else
    {
        CreateNode( TPtr->Next, x );
        if ( TPtr->Next != NULL )
        {
            TPtr->Previous = TPtr;
            TPtr = TPtr->Next;
        }
        else
        {
            printf("error getting memory!  Record not created \n");
        }
    }
}
The head record is created as in i get a memory address but when it returns to the main program its back to null.