1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Allocating Local Memory in Oct-Files (GNU Octave (version 6.2.0))</title>
<meta name="description" content="Allocating Local Memory in Oct-Files (GNU Octave (version 6.2.0))">
<meta name="keywords" content="Allocating Local Memory in Oct-Files (GNU Octave (version 6.2.0))">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html" rel="start" title="Top">
<link href="Concept-Index.html" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Oct_002dFiles.html" rel="up" title="Oct-Files">
<link href="Input-Parameter-Checking-in-Oct_002dFiles.html" rel="next" title="Input Parameter Checking in Oct-Files">
<link href="Calling-External-Code-from-Oct_002dFiles.html" rel="prev" title="Calling External Code from Oct-Files">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="octave.css">
</head>
<body lang="en">
<span id="Allocating-Local-Memory-in-Oct_002dFiles"></span><div class="header">
<p>
Next: <a href="Input-Parameter-Checking-in-Oct_002dFiles.html" accesskey="n" rel="next">Input Parameter Checking in Oct-Files</a>, Previous: <a href="Calling-External-Code-from-Oct_002dFiles.html" accesskey="p" rel="prev">Calling External Code from Oct-Files</a>, Up: <a href="Oct_002dFiles.html" accesskey="u" rel="up">Oct-Files</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<span id="Allocating-Local-Memory-in-Oct_002dFiles-1"></span><h4 class="subsection">A.1.10 Allocating Local Memory in Oct-Files</h4>
<p>Allocating memory within an oct-file might seem easy, as the C++ new/delete
operators can be used. However, in that case great care must be taken to avoid
memory leaks. The preferred manner in which to allocate memory for use locally
is to use the <code><span class="nolinebreak">OCTAVE_LOCAL_BUFFER</span></code><!-- /@w --> macro. An example of its use is
</p>
<div class="example">
<pre class="example">OCTAVE_LOCAL_BUFFER (double, tmp, len)
</pre></div>
<p>that returns a pointer <code>tmp</code> of type <code>double *</code> of length <code>len</code>.
</p>
<p>In this case, Octave itself will worry about reference counting and variable
scope and will properly free memory without programmer intervention.
</p>
</body>
</html>
|