MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Passing arrays to MathLink without extra memory allocation

  • To: mathgroup at smc.vnet.net
  • Subject: [mg98758] Re: Passing arrays to MathLink without extra memory allocation
  • From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
  • Date: Sat, 18 Apr 2009 03:37:37 -0400 (EDT)
  • References: <gs9ek8$mso$1@smc.vnet.net>

Hi,

a) MathLink is always buffered and
b) it must copy the data into a memory area
    that bot programs can access
c) your C-program can never access the memory space
   of an other program/process. The operating system is
   responsible to hinder/prevent such operations

Regards
   Jens

axnavaei at googlemail.com wrote:
> Hi,
> 
> When passing a list/array from mathematica to c using mathlink, eg
> when calling MLReleaseInteger32List(), it seems mathlink allocates
> some memory which later has to be freed, eg using
> MLReleaseInteger32List(). The question is, how is it possible to pass
> a list from mathematica to c without this c memory allocation?
> 
> This example helps to make the question more clear: Assume MyFunction
> [BigList] to be a function implemented in c using mathlink, where
> BigList is a list of integers. Since BigList has been already created
> in mathematica and its corresponding memory has been allocated, we do
> not wish to allocate memory once again in c. It looks like one option
> is to pass BigList by reference, that is:
> 
> SetProperties[MyFunction, HoldAll]
> 
> In this case, does mathlink still allocate memory and copy BigList in
> the c side?
> 


  • Prev by Date: Re: Been doing real-time measurements with Mathematica! (Wii Balance
  • Next by Date: Re: Replace Table[Sum...]...] with Functional code
  • Previous by thread: Passing arrays to MathLink without extra memory allocation
  • Next by thread: Re: Passing arrays to MathLink without extra memory allocation