From: Erik Max Francis Newsgroups: comp.os.msdos.djgpp,rec.games.programmer Subject: Re: declaring/passing ptrs to @D arrays Date: Tue, 22 Jul 1997 19:20:54 -0700 Organization: Alcyone Systems Lines: 49 Message-ID: <33D56A86.57FBE05F@alcyone.com> References: <33D10773 DOT 45C94A8D AT gapeach DOT com> NNTP-Posting-Host: newton.alcyone.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk Jacob Martin wrote: > how do I do this? I keep getting bad comilation stuff.... > > I thought I had it right, then I started the whole..."hmmm, add another > star?hmmm remove a star...hmmm" This is not the right way to become a good programmer. This is the way to become someone who programs by trial and error. > and I finally got it to compile( halfway) but it gives me this: > > E:\game>gxx test.cc -lj -lm > e:/djgpp/tmp\ccdaaaaa(.text+0xc0):test.cc: undefined reference to > `mapmaker(int > *, int)' > e:/djgpp/tmp\ccdaaaaa(.text+0x170):test.cc: undefined reference to > `frenchtile(i > nt *, buffer_rec *, bufinde *, int)' > > Here's the relevant code... These functions are declared as: > void frenchtile(int *,buffer_rec *bufferptr,bufinde *btp, int); > void mapmaker (int *,int) ; But they're defined as: > void frenchtile(int **mmp,buffer_rec *bufferptr,bufinde *btp,int page) ... > void mapmaker (int **mmp, int size) { ... The prototypes do not match the declared functions. Since this is C++ (you're using the .cc extension), you can have overloaded functions, where multiple functions have the same identifier but different arguments. You're prototyping two functions, each of which starts with an int *, but then you're declaring them as taking int **. In C++ this is not an error (in C it is), but you're clearly using the int *-using functions elsewhere and there are no such functions declared. -- Erik Max Francis, &tSftDotIotE / email / max AT alcyone DOT com Alcyone Systems / web / http://www.alcyone.com/max/ San Jose, California, United States / icbm / 37 20 07 N 121 53 38 W \ "Love is not love which alters / when it alternation finds." / William Shakespeare, _Sonnets_, 116