请问以下几句代码有问题吗?
void tt(int dnNum,int nsize)
{
char **cTtid;
int i;
if (dnNum > 0 && nsize > 0)
{
cTtid= calloc(dnNum,nsize);
for (i=0;i <dnNum ;i++)
{
cTtid[i] = (char*)malloc(nsize);
memset(cTtid[i],'\0',nsize);
}
……
……
……
……
for (i=0;i <dnNum ;i++)
free(cTtid[i]);
free(cTtid);
}
}
请问这个函数会否造成内存重复分配?最后的内存释放能否将申请的内存全部释放干净?