Complete.Org: Mailing Lists: Archives: freeciv-dev: September 2000:
[Freeciv-Dev] Re: TODO
Home

[Freeciv-Dev] Re: TODO

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Jules Bean <jules@xxxxxxxxxxxxxxxxxxxxxxxxx>
Cc: Erik Sigra <freeciv@xxxxxxx>, freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: TODO
From: Raimar Falke <hawk@xxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 22 Sep 2000 12:45:45 +0200
Reply-to: rf13@xxxxxxxxxxxxxxxxxxxxxxxx

On Fri, Sep 22, 2000 at 10:56:58AM +0100, Jules Bean wrote:
> On Fri, Sep 22, 2000 at 11:55:43AM +0200, Erik Sigra wrote:
> > Falk Hueffner wrote:
> > > 
> > > Erik Sigra <freeciv@xxxxxxx> writes:
> > > 
> > > > Yes, my implementation requires a lot of recoding (I'm doing it
> > > > right now). But it can be done in steps. It just takes some
> > > > typecasting klugdes ("(struct locus({x, y}") in some places during
> > 
> > Should have been "(struct locus){x, y}" of course.
> > 
> > > > the transition.
> > > 
> > > Please don't; this is not portable, it's a gcc extension.
> > 
> > Really, I didn't know. Then how it is it done by ANSI?
> 
> 'on-the-fly' struct creation is not possible.
> 
> 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.

        Raimar

-- 
 "#!/usr/bin/perl -w
  if ( `date +%w` != 1 ) {
    die "This script only works on Mondays." ;
  }"
    -- from chkars.pl by Cornelius Krasel in de.comp.os.linux.misc



[Prev in Thread] Current Thread [Next in Thread]