怎么释放主函数外申请的指针p的空间

如题
int main()
{

    char a[] = "extracurricular";

    cout << cut(a, 6, 15);

}

char* cut(char *a, int m, int n)

{

    char *p;

    p = new char[n - m +1];
    strncpy(p, a + m - 1, n - m + 1);

    return p;

}

char * p=cut(a, 6, 15);
调用的时候要记录指针 然后释放

char a[] = "extracurricular";

char *pret = cut(a, 6, 15);
    cout << pret; //不确定这样写对不对,很少用cout
if(pret)
{
    free(pret);     
}