File: Allocating-Local-Memory-in-Oct_002dFiles.html

package info (click to toggle)
octave 10.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 145,388 kB
  • sloc: cpp: 335,976; ansic: 82,241; fortran: 20,963; objc: 9,402; sh: 8,756; yacc: 4,392; lex: 4,333; perl: 1,544; java: 1,366; awk: 1,259; makefile: 659; xml: 192
file content (61 lines) | stat: -rw-r--r-- 3,075 bytes parent folder | download | duplicates (2)
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
<!DOCTYPE html>
<html>
<!-- Created by GNU Texinfo 7.1.1, https://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 10.3.0))</title>

<meta name="description" content="Allocating Local Memory in Oct-Files (GNU Octave (version 10.3.0))">
<meta name="keywords" content="Allocating Local Memory in Oct-Files (GNU Octave (version 10.3.0))">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta name="viewport" content="width=device-width,initial-scale=1">

<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.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
div.example {margin-left: 3.2em}
span:hover a.copiable-link {visibility: visible}
-->
</style>
<link rel="stylesheet" type="text/css" href="octave.css">


</head>

<body lang="en">
<div class="subsection-level-extent" id="Allocating-Local-Memory-in-Oct_002dFiles">
<div class="nav-panel">
<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> &nbsp; [<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>
<h4 class="subsection" id="Allocating-Local-Memory-in-Oct_002dFiles-1"><span>A.1.10 Allocating Local Memory in Oct-Files<a class="copiable-link" href="#Allocating-Local-Memory-in-Oct_002dFiles-1"> &para;</a></span></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 class="code">OCTAVE_LOCAL_BUFFER</code><!-- /@w -->&nbsp;macro.  An example of its use is
</p>
<div class="example">
<pre class="example-preformatted">OCTAVE_LOCAL_BUFFER (double, tmp, len)
</pre></div>

<p>that returns a pointer <code class="code">tmp</code> of type <code class="code">double *</code> of length <code class="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>
</div>



</body>
</html>