You can of course pass IntVars by reference, but it is not needed.

 

Do not use new! None of the modeling abstractions in Gecode needs that. The
only thing you will do is to create a memory leak (maybe we should have 

made new and delete for all variables and arrays private).

 

Christian

 

--

Christian Schulte, www.ict.kth.se/~cschulte/

 

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Mauricio Toro
Sent: Thursday, May 29, 2008 3:47 PM
To: [EMAIL PROTECTED]
Subject: Re: [gecode-users] pointer safe (sorry for multiple posting)

 

And what about IntVars? can I use references two?

for example:

 

IntVar * get_IntVar(Space * h,IntVar * pos, IntVarArray & array)

{

     IntVar * answer = new IntVar(h,1,1000);

     element(h, array, *pos, *answer); 

     return answer;

}

 

IntVar & get_IntVar(Space * h,IntVar & pos, IntVarArray & array)

{

     IntVar answer(h,1,1000);

     element(h, array, pos, answer); 

     return answer;

}

 

Are both "pointer safe"?

I mean, is it necesary to allocate memory 

for IntVars using new, or when I create the IntVar object

it allocates its own memory?

 

Thank you very much,

 

Mauricio

 

2008/5/29 Christian Schulte <[EMAIL PROTECTED]>:

Just pass arrays by reference and not by value!

 

Christian

 

--

Christian Schulte, www.ict.kth.se/~cschulte/

 

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Mauricio Toro
Sent: Thursday, May 29, 2008 3:34 PM
To: [EMAIL PROTECTED]
Subject: [gecode-users] pointer safe (sorry for multiple posting)

 

Hello all,

 

I would like to know if this functions are "pointer safe",

I was looking at the array implementation and I think

it manage its own memory allocation.

 

IntVarArray create(Space * h, int size)

{

   return IntVarArray(h,size,1,1000);

}

 

IntVar * get_IntVar(Space * h,IntVar * pos, IntVarArray array)

{

     IntVar * answer = new IntVar(h,1,1000);

     element(h, array, *pos, *answer); 

     return answer;

}

 

IntVar * get_IntVar(Space * h,int pos, IntVarArray array)

{

     return &array[pos];

}

 

I tried using new with IntVarArray but it not allowed.

Is there a problem of creating an IntVarArray in a function and returning
it?

is there a problem with the other two?

 

Thanks

-- 
Mauricio Toro Bermudez
Estudiante de Ingeniería de Sistemas
Pontificia Universidad Javeriana, Colombia

Stagiare à l'Ircam
1, place Igor-Stravinsky 75004 Paris, 
France de 2008 à 2009 




-- 
Mauricio Toro Bermudez
Estudiante de Ingeniería de Sistemas
Pontificia Universidad Javeriana, Colombia

Stagiare à l'Ircam
1, place Igor-Stravinsky 75004 Paris, 
France de 2008 à 2009 




-- 
Mauricio Toro Bermudez
Estudiante de Ingeniería de Sistemas
Pontificia Universidad Javeriana, Colombia

Stagiare à l'Ircam
1, place Igor-Stravinsky 75004 Paris, 
France de 2008 à 2009 

_______________________________________________
Gecode users mailing list
[EMAIL PROTECTED]
https://www.gecode.org/mailman/listinfo/gecode-users

Reply via email to