File: Block-allocation.html

package info (click to toggle)
gsl-ref-html 2.3-1
  • links: PTS
  • area: non-free
  • in suites: bullseye, buster, sid
  • size: 6,876 kB
  • ctags: 4,574
  • sloc: makefile: 35
file content (109 lines) | stat: -rw-r--r-- 5,096 bytes parent folder | download
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 The GSL Team.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Free Software
Needs Free Documentation", the Front-Cover text being "A GNU Manual",
and with the Back-Cover Text being (a) (see below). A copy of the
license is included in the section entitled "GNU Free Documentation
License".

(a) The Back-Cover Text is: "You have the freedom to copy and modify this
GNU Manual." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Scientific Library &ndash; Reference Manual: Block allocation</title>

<meta name="description" content="GNU Scientific Library &ndash; Reference Manual: Block allocation">
<meta name="keywords" content="GNU Scientific Library &ndash; Reference Manual: Block allocation">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Function-Index.html#Function-Index" rel="index" title="Function Index">
<link href="Blocks.html#Blocks" rel="up" title="Blocks">
<link href="Reading-and-writing-blocks.html#Reading-and-writing-blocks" rel="next" title="Reading and writing blocks">
<link href="Blocks.html#Blocks" rel="previous" title="Blocks">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {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}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Block-allocation"></a>
<div class="header">
<p>
Next: <a href="Reading-and-writing-blocks.html#Reading-and-writing-blocks" accesskey="n" rel="next">Reading and writing blocks</a>, Up: <a href="Blocks.html#Blocks" accesskey="u" rel="up">Blocks</a> &nbsp; [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Block-allocation-1"></a>
<h4 class="subsection">8.2.1 Block allocation</h4>

<p>The functions for allocating memory to a block follow the style of
<code>malloc</code> and <code>free</code>.  In addition they also perform their own
error checking.  If there is insufficient memory available to allocate a
block then the functions call the GSL error handler (with an error
number of <code>GSL_ENOMEM</code>) in addition to returning a null
pointer.  Thus if you use the library error handler to abort your program
then it isn&rsquo;t necessary to check every <code>alloc</code>.  
</p>
<dl>
<dt><a name="index-gsl_005fblock_005falloc"></a>Function: <em>gsl_block *</em> <strong>gsl_block_alloc</strong> <em>(size_t <var>n</var>)</em></dt>
<dd><p>This function allocates memory for a block of <var>n</var> double-precision
elements, returning a pointer to the block struct.  The block is not
initialized and so the values of its elements are undefined.  Use the
function <code>gsl_block_calloc</code> if you want to ensure that all the
elements are initialized to zero.
</p>
<p>A null pointer is returned if insufficient memory is available to create
the block.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005fblock_005fcalloc"></a>Function: <em>gsl_block *</em> <strong>gsl_block_calloc</strong> <em>(size_t <var>n</var>)</em></dt>
<dd><p>This function allocates memory for a block and initializes all the
elements of the block to zero.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005fblock_005ffree"></a>Function: <em>void</em> <strong>gsl_block_free</strong> <em>(gsl_block * <var>b</var>)</em></dt>
<dd><p>This function frees the memory used by a block <var>b</var> previously
allocated with <code>gsl_block_alloc</code> or <code>gsl_block_calloc</code>.
</p></dd></dl>




</body>
</html>