MathGroup Archive 2003

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

Search the Archive

Re: Proper way to free memory?

  • To: mathgroup at
  • Subject: [mg43607] Re: Proper way to free memory?
  • From: Jens-Peer Kuska <kuska at>
  • Date: Tue, 23 Sep 2003 04:01:57 -0400 (EDT)
  • Organization: Universitaet Leipzig
  • References: <bkjs7l$hru$>
  • Reply-to: kuska at
  • Sender: owner-wri-mathgroup at


since MathLink is always buffered, your segmetation fault has nothing
to do with MathLink, When MLPut*List() returns the data are transfered.


Bob Buchanan wrote:
> Hello,
> I've written an external program to be called from Mathematica using
> mathlink. Inside one of the C functions I dynamically allocate an
> array of integers and another array of doubles. I fill them with data
> and then  I pass the results back to Mathematica. The ReturnType of
> the function is set to Manual. In the C program I use statements like
>   MLPutFunction(stdlink,"List",2)       ;
>   MLPutIntegerList(stdlink,nn,numneigh) ;
>   MLPutRealList(stdlink,dx,numneigh)    ;
> Since dx and nn are dynamically allocated, before the function returns
> I would like to free the space previously allocated. But the following
> statements create a segmentation violation at run time.
>   free((void *)dx)      ;
>   free((void *)nn)      ;
> Am I not supposed to free memory that I'm passing back to Mathematica?
> What am I doing wrong?
> Thanks,
> Bob Buchanan
> Bob.Buchanan at

  • Prev by Date: Re: Forcing a Fit through a Data Point (Mathematica 5)
  • Next by Date: Re: package functions in mathlink
  • Previous by thread: Proper way to free memory?
  • Next by thread: Re: Proper way to free memory?