[Freeciv-Dev] Re: TODO
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Fri, Sep 22, 2000 at 12:45:45PM +0200, Raimar Falke wrote:
> On Fri, Sep 22, 2000 at 10:56:58AM +0100, Jules Bean wrote:
> > Instead use a 'constructor' function
> >
> > struct locus make_locus(int x,int y) {
> > struct locus l;
> > l.x=x; l.y=y;
> > return l;
> > }
>
> AFAIK this is wrong. The variable l is created on the stack which is
> destroyed at the return. You have to do return a newly allocated part of
> memory. Using this you will get some problems with bookkeeping since C has
> no GC.
Nope.
The above will make another copy of 'l' and return that.
I'm not returning a pointer to l, I'm returning l itself, which is a
copying operation. At no point do I use pointers, so I cannot trip
over destroyed memory errors.
Some compilers will in fact optimise out the copy, but that's their
problem (and it's a good thing, if they do it correctly ;-)
Jules
- [Freeciv-Dev] Re: TODO, (continued)
- [Freeciv-Dev] Re: TODO, Erik Sigra, 2000/09/21
- [Freeciv-Dev] Re: TODO, Gaute B Strokkenes, 2000/09/21
- [Freeciv-Dev] Re: TODO, Erik Sigra, 2000/09/21
- [Freeciv-Dev] Re: TODO, Falk Hueffner, 2000/09/22
- [Freeciv-Dev] Re: TODO, Erik Sigra, 2000/09/22
- [Freeciv-Dev] Re: TODO, Jules Bean, 2000/09/22
- [Freeciv-Dev] Re: TODO, Raimar Falke, 2000/09/22
- [Freeciv-Dev] Re: TODO,
Jules Bean <=
- [Freeciv-Dev] Re: TODO, Daniel Sjölie, 2000/09/22
- [Freeciv-Dev] Re: TODO, Jeff Mallatt, 2000/09/22
- [Freeciv-Dev] Re: TODO, Jules Bean, 2000/09/22
- [Freeciv-Dev] Re: TODO, Jeff Mallatt, 2000/09/22
- [Freeciv-Dev] Re: TODO, Raimar Falke, 2000/09/22
- [Freeciv-Dev] Re: TODO, Daniel Sjölie, 2000/09/22
- [Freeciv-Dev] Re: TODO, Gaute B Strokkenes, 2000/09/22
- [Freeciv-Dev] Re: TODO, Greg Wooledge, 2000/09/22
- [Freeciv-Dev] Re: TODO, Gaute B Strokkenes, 2000/09/22
- [Freeciv-Dev] Re: TODO, Erik Sigra, 2000/09/22
|
|