代码问题查找及优化建议?

astone2007 发布于 2014/07/05 17:03
阅读 82
收藏 0

int Test(void)
{

	u_int8 *pUncompressData;

	pUncompressData = (u_int8 *)OS_Malloc(1000);
	if(pUncompressData == NULL)
	{
		OS_Free(pUncompressData);
		return -1;
	}

	if(1)
	{
		do something;
	}
	OS_Free(pUncompressData);

	return 0;
}



加载中
0
0-1
0-1

1.  PS_Malloc返回NULL说明malloc失败,直接return,不用free。

2. if(1) 死循环,没有出口,free也执行不到。

3. 较多异常return的函数代码段,可以统一goto,在函数尾做资源释放判断。

astone2007
astone2007
回复 @guyson : 我微信astone2007,可否加一下,向你请教一下这个代码!
0-1
0-1
回复 @astone2007 : 总共分配的内存量取决于交换区和系统配置中的进程限制。不够就返回失败。不存在你说的问题。
astone2007
astone2007
回复 @guyson :上面的程序, OS_Malloc(x); 当x->非常大时,是否会导致堆栈溢出啊?
0-1
0-1
回复 @astone2007 :能用局部变量就不用全局(模块内+static)。除非有很多函数都需要调用到。
astone2007
astone2007
u_int8 *pUncompressData; 这个指针变量声明为全局的好,还是局部的好啊?想了解下!
返回顶部
顶部