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
