| cvs.gedasymbols.org/archives/browse.cgi | search |
| 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
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |