<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file documents the BFD library.

Copyright (C) 1991-2015 Free Software Foundation, Inc.

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 "Funding
Free Software", the Front-Cover texts being (a) (see below), and with
the Back-Cover Texts being (b) (see below).  A copy of the license is
included in the section entitled "GNU Free Documentation License".

(a) The FSF's Front-Cover Text is:

A GNU Manual

(b) The FSF's Back-Cover Text is:

You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development. -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Untitled Document: Creating and Freeing a Hash Table</title>

<meta name="description" content="Untitled Document: Creating and Freeing a Hash Table">
<meta name="keywords" content="Untitled Document: Creating and Freeing a Hash Table">
<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="BFD-Index.html#BFD-Index" rel="index" title="BFD Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Hash-Tables.html#Hash-Tables" rel="up" title="Hash Tables">
<link href="Looking-Up-or-Entering-a-String.html#Looking-Up-or-Entering-a-String" rel="next" title="Looking Up or Entering a String">
<link href="Hash-Tables.html#Hash-Tables" rel="prev" title="Hash Tables">
<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="Creating-and-Freeing-a-Hash-Table"></a>
<div class="header">
<p>
Next: <a href="Looking-Up-or-Entering-a-String.html#Looking-Up-or-Entering-a-String" accesskey="n" rel="next">Looking Up or Entering a String</a>, Previous: <a href="Hash-Tables.html#Hash-Tables" accesskey="p" rel="prev">Hash Tables</a>, Up: <a href="Hash-Tables.html#Hash-Tables" accesskey="u" rel="up">Hash Tables</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="BFD-Index.html#BFD-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Creating-and-freeing-a-hash-table"></a>
<h4 class="subsection">2.18.1 Creating and freeing a hash table</h4>
<a name="index-bfd_005fhash_005ftable_005finit"></a>
<a name="index-bfd_005fhash_005ftable_005finit_005fn"></a>
<p>To create a hash table, create an instance of a <code>struct
bfd_hash_table</code> (defined in <code>bfd.h</code>) and call
<code>bfd_hash_table_init</code> (if you know approximately how many
entries you will need, the function <code>bfd_hash_table_init_n</code>,
which takes a <var>size</var> argument, may be used).
<code>bfd_hash_table_init</code> returns <code>FALSE</code> if some sort of
error occurs.
</p>
<a name="index-bfd_005fhash_005fnewfunc"></a>
<p>The function <code>bfd_hash_table_init</code> take as an argument a
function to use to create new entries.  For a basic hash
table, use the function <code>bfd_hash_newfunc</code>.  See <a href="Deriving-a-New-Hash-Table-Type.html#Deriving-a-New-Hash-Table-Type">Deriving a New Hash Table Type</a>, for why you would want to use a
different value for this argument.
</p>
<a name="index-bfd_005fhash_005fallocate"></a>
<p><code>bfd_hash_table_init</code> will create an objalloc which will be
used to allocate new entries.  You may allocate memory on this
objalloc using <code>bfd_hash_allocate</code>.
</p>
<a name="index-bfd_005fhash_005ftable_005ffree"></a>
<p>Use <code>bfd_hash_table_free</code> to free up all the memory that has
been allocated for a hash table.  This will not free up the
<code>struct bfd_hash_table</code> itself, which you must provide.
</p>
<a name="index-bfd_005fhash_005fset_005fdefault_005fsize"></a>
<p>Use <code>bfd_hash_set_default_size</code> to set the default size of
hash table to use.
</p>



</body>
</html>
