Thanks Brion, the example code is working fine with your help now! Much
appreciate!
Eric L.
On Tuesday, November 3, 2015 at 4:27:58 PM UTC-8, larour wrote:
>
> Dear All,
>
> I have an issue that I can't seem to see addressed fully, apologies in
> advance if this has already been posted.
> Here is the issue:
>
> given a C function that I compile with emcc:
>
> int allocatearray(float** array,int* parray_size){
>
> array_size=rand(10);
> float* array= (float*) malloc(array_size);
> *parray_size=array_size;
> *parray=array;
> }
>
>
> this function allocates an array for which I do not initially know the
> size, hence cannot be done on the
> js side, only the c side knows how to handle the allocation.
>
> I would like to be able to create a js array that is allocated insize the
> "c" function allocatearray:
>
> i.e: I would like to write the following code:
>
> var allocated_array;
> var allocated_array_size;
> AllocateArray =
> Module.cwrap('allocate_array','number',['number','number']);
>
> but I don't seem to understand how using the module heap I could retrieve
> the allocated_array
> and its size, how would the call even look like?
> AllocateArray(&allocate_array, & allocated_array_size); ? //that's not
> javascript! but that's what I would like to write
>
> I could try and build a pointer in the module heap, and pass that on to
> the AllocateArray module, but I need to pass
> a pointer to a pointer if I want to be able to allocate it. How do you
> create a NULL pointer in javascript, and get
> it allocated within the c function?
>
> I have seen a lot of documentation on how to pass a pointer from js to C,
> but here, it's different, I want to pass
> a NULL pointer from js to C, have C allocate it, and return it to js.
>
> I would appreciate any help on the issue, thanks a lot in advance!
>
> Eric
>
>
>
--
You received this message because you are subscribed to the Google Groups
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.