Should I Return This Memory Block?
<pre><code>template &lt; typename ArrayType &gt;
ArrayType *VectorToArray( ArrayType **p_ppThisBlock = NULL, vector&lt; ArrayType &gt; *p_vThisVector = NULL )
{
    // Check to see if both parameters are valid.
    if( p_ppThisBlock == NULL || p_vThisVector == NULL )
    {
        return NULL;
    }

    else if( p_ppThisBlock != NULL &amp;&amp; p_vThisVector != NULL )
    {
        // Create the array that will store the vector's elements dynamically.
        p_ppThisBlock = new ArrayType[ p_vThisVector -&gt; size( ) ];

        // Initialize the array.
        for( unsigned uIndex( 0 ); uIndex &lt; p_vThisVector -&gt; size( ); uIndex++ )
        {
            p_ppThisBlock[ uIndex ] = p_vThisVector[ uIndex ];
        }

        // Return the pointer that pointing to the new block of memory. Is this relevant?   
        return p_ppThisBlock;
    }
}
</code></pre>

<p>My question is: Is returning the block of memory I created in this function relevant?( Line 12 ). </p>
