在写一个程序代码分析程序时,运用的是C语言,其中一个函数,重复调用时malloc分配不了内存,可用new替换了就可以了,弄不明白什么原因。
//分配一个函数;
pFuncPro AddFunc(const char * name)
{
//为什么重复调用AddFunc函数malloc分配不了内存,而new可以;
//pFuncPro func = (pFuncPro)malloc(sizeof(funcProLen));
pFuncPro func = new FuncPro;
if(func != NULL)
{
//func->data = NULL;
StrAssign(func->funName, name);
func->startPos = g_codePro->allRow;
func->row = 0;
func->next = NULL;
}
return func;
}
本文探讨了在使用C语言进行程序开发时遇到的一个问题:为何在重复调用函数时,malloc无法成功分配内存,而使用C++的new操作符则能成功。通过对比malloc与new的工作机制,分析了可能的原因。
1292

被折叠的 条评论
为什么被折叠?



