cvs.gedasymbols.org/archives/browse.cgi   search  
Mail Archives: djgpp/1999/10/25/02:58:48

From: kezman AT nOsPaMbigfoot DOT com (Kieran Farrell)
Newsgroups: comp.os.msdos.djgpp
Subject: URGENT!!! Please (A Little Long)
Message-ID: <3813e85f.18243975@news.pasteur.dialix.com.au>
X-Newsreader: Forte Free Agent 1.11/32.235
Organization: DIALix Internet Services
Lines: 69
Date: Mon, 25 Oct 1999 05:31:39 GMT
NNTP-Posting-Host: 203.12.3.8
X-Complaints-To: abuse AT telstra DOT net
X-Trace: nsw.nnrp.telstra.net 940829561 203.12.3.8 (Mon, 25 Oct 1999 15:32:41 EST)
NNTP-Posting-Date: Mon, 25 Oct 1999 15:32:41 EST
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Heya peeps,

I need a liitle help, I am doing a complex flat file database using
linked lists and I can't think for some reason. Please look at the
following segment.

typedef struct StudentTag STUDENT;
struct StudentTag
{
    STUDENT *Next;
    char ID[MAXID];
};

int main(void)
{
    STUDENT *Start = NULL;
    
    AddStudent(Start);
    CleanUp(Start);
 
    return 0;
}

void AddStudent(STUDENT *Student)
{
    STUDENT *New;

    New = malloc(sizeof(STUDENT));
    /*
      * etc etc.
      */
    Start->Next = New;
    return;    
}

OK this is the sort of thing I'm trying to do, however when I allocate
memory and leave the function it destroys the memory and Start in main
is still NULL. This suggests to me that I'm passing by value and not
by reference right?

So how would I pass the pointer to the structure by refference. As a
quick fix I have done the following.

int main(void)
{
    STUDENT *Start = NULL;
    
    Start = AddStudent(Start);
    CleanUp(Start);
 
    return 0;
}

STUDENT *AddStudent(STUDENT *Student)
{
    STUDENT *New;

    New = malloc(sizeof(STUDENT));
    /*
      * etc etc.
      */
    Start->Next = New;
    return (Student);    
}

I think you will all agree ther MUST!!! be a better way, HELP *8)

-----
Kieran Farrell

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019