1.返回局部变量地址错误
#include
int * test(void)
{
int i = 0;
return &i; //返回局部变量地址,这里不允许的
}
int main(void)
{
int *p;
p = test();
printf("*p = %d\n",*p);
return 0;
}
2.临时空间过大
int test()
{
int a[60][250][1000],i,j,k;//局部变量a过大
for(k=0;k<1000;k++)
for(j=0;j<250;j++)
for(i=0;i<60;i++)
a[i][j][k]=0;
}
3.申请堆空间后未释放
char *DoSomething(...)
{
if((p = malloc(1024))==NULL)
return NULL;
return p;
}
不释放不再需要的堆空间不允许的。
阅读(226) | 评论(0) | 转发(0) |