<h2 >The <code>upc_local_alloc</code> function &nbsp;&nbsp; <i>deprecated</i> </h2>

<h4>Synopsis</h4>
<p>
<pre> 
    #include &lt;upc.h&gt;
    shared void *upc_local_alloc(size_t nblocks, 
                                 size_t nbytes);                          
</pre>
<p>
<h4>Description</h4>

<p>
The <code>upc_local_alloc </code> function is deprecated and should not be used. UPC
programs should use the <code>upc_alloc </code> function instead. Support may be removed
in future versions of this specification.
<p>
The <code>upc_local_alloc </code> function allocates shared space of at least 
<code>nblocks * nbytes </code> bytes with affinity to the calling thread. If 
<code>nblocks * nbytes </code>  is zero,
the result is a null pointer-to-shared.
<p>
<code>upc_local_alloc </code> is similar to malloc() except that it returns a pointer-to-shared
value. It is not a <i>collective</i> function.

<p>&nbsp
<p>&nbsp
<p><a href="terms.html">Terms, definitions, and symbols</a><br>
<p><a href="index.html">Back to index of all UPC functions</a>
