[gambit-list] How can I allocate a vector in a function?
feeley at iro.umontreal.ca
Tue Mar 26 10:43:43 EDT 2013
On 2013-03-26, at 10:17 AM, Jason Felice <jason.m.felice at gmail.com> wrote:
> I don't have the environment to use the ___BEGIN_ALLOC_VECTOR() macros. (No ___hp).
> I know the size ahead of time. If possible, I'd like to avoid passing ___hp all the way down.
> Actually, this is one place where I'd love documentation - the environment for writing C functions and how things are protected from gc, etc. I can put it together after I figure it out.
Use this instead:
long length = 100;
___SCMOBJ init = ___FAL;
___SCMOBJ v = ___EXT(___make_vector)(length, init, ___STILL);
An alternative is to create the vector in Scheme, and pass it to C to be filled in using mutation.
More information about the Gambit-list