⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mem_methods.html

📁 sqlite3源码,适合作为嵌入式(embedded)
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Memory Allocation Routines</title><style type="text/css">body {    margin: auto;    font-family: "Verdana" "sans-serif";    padding: 8px 1%;}a { color: #45735f }a:visited { color: #734559 }.logo { position:absolute; margin:3px; }.tagline {  float:right;  text-align:right;  font-style:italic;  width:240px;  margin:12px;  margin-top:58px;}.toolbar {  font-variant: small-caps;  text-align: center;  line-height: 1.6em;  margin: 0;  padding:1px 8px;}.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }.toolbar a:visited { color: white; }.toolbar a:hover { color: #80a796; background: white; }.content    { margin: 5%; }.content dt { font-weight:bold; }.content dd { margin-bottom: 25px; margin-left:20%; }.content ul { padding:0px; padding-left: 15px; margin:0px; }/* rounded corners */.se  { background: url(../images/se.png) 100% 100% no-repeat #80a796}.sw  { background: url(../images/sw.png) 0% 100% no-repeat }.ne  { background: url(../images/ne.png) 100% 0% no-repeat }.nw  { background: url(../images/nw.png) 0% 0% no-repeat }</style><meta http-equiv="content-type" content="text/html; charset=UTF-8">  </head><body><div><!-- container div to satisfy validator --><a href="../index.html"><img class="logo" src="../images/SQLite.gif" alt="SQLite Logo" border="0"></a><div><!-- IE hack to prevent disappearing logo--></div><div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div><table width=100% style="clear:both"><tr><td>  <div class="se"><div class="sw"><div class="ne"><div class="nw">  <div class="toolbar">    <a href="../about.html">About</a>    <a href="../sitemap.html">Sitemap</a>    <a href="../docs.html">Documentation</a>    <a href="../download.html">Download</a>    <a href="../copyright.html">License</a>    <a href="../news.html">News</a>    <a href="http://www.sqlite.org/cvstrac/index">Developers</a>    <a href="../support.html">Support</a>  </div></div></div></div></div></td></tr></table>  <a href="intro.html"><h2>SQLite C Interface</h2></a><h2>Memory Allocation Routines</h2><blockquote><pre>typedef struct sqlite3_mem_methods sqlite3_mem_methods;struct sqlite3_mem_methods {  void *(*xMalloc)(int);         /* Memory allocation function */  void (*xFree)(void*);          /* Free a prior allocation */  void *(*xRealloc)(void*,int);  /* Resize an allocation */  int (*xSize)(void*);           /* Return the size of an allocation */  int (*xRoundup)(int);          /* Round up request size to allocation size */  int (*xInit)(void*);           /* Initialize the memory allocator */  void (*xShutdown)(void*);      /* Deinitialize the memory allocator */  void *pAppData;                /* Argument to xInit() and xShutdown() */};</pre></blockquote><p><b>Important:</b> This interface is <a href="../c3ref/experimental.html">experimental</a> and is subject to change without notice.</p><p>An instance of this object defines the interface between SQLiteand low-level memory allocation routines.</p><p>This object is used in only one place in the SQLite interface.A pointer to an instance of this object is the argument to<a href="../c3ref/config.html">sqlite3_config()</a> when the configuration option is<a href="../c3ref/c_config_getmalloc.html">SQLITE_CONFIG_MALLOC</a>.  By creating an instance of this objectand passing it to <a href="../c3ref/config.html">sqlite3_config()</a> during configuration, anapplication can specify an alternative memory allocation subsystemfor SQLite to use for all of its dynamic memory needs.</p><p>Note that SQLite comes with a built-in memory allocator that isperfectly adequate for the overwhelming majority of applicationsand that this object is only useful to a tiny minority of applicationswith specialized memory allocation requirements.  This object isalso used during testing of SQLite in order to specify an alternativememory allocator that simulates memory out-of-memory conditions inorder to verify that SQLite recovers gracefully from suchconditions.</p><p>The xMalloc, xFree, and xRealloc methods must work like themalloc(), free(), and realloc() functions from the standard library.</p><p>xSize should return the allocated size of a memory allocationpreviously obtained from xMalloc or xRealloc.  The allocated sizeis always at least as big as the requested size but may be larger.</p><p>The xRoundup method returns what would be the allocated size ofa memory allocation given a particular requested size.  Most memoryallocators round up memory allocations at least to the next multipleof 8.  Some allocators round up to a larger multiple or to a power of 2.</p><p>The xInit method initializes the memory allocator.  (For example,it might allocate any require mutexes or initialize internal datastructures.  The xShutdown method is invoked (indirectly) by<a href="../c3ref/initialize.html">sqlite3_shutdown()</a> and should deallocate any resources acquiredby xInit.  The pAppData pointer is used as the only parameter toxInit and xShutdown.</p><p>See also lists of  <a href="objlist.html">Objects</a>,  <a href="constlist.html">Constants</a>, and  <a href="funclist.html">Functions</a>.</p><hr><small><i>This page last modified 2008/12/09 18:44:04 UTC</i></small></div></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -