有问题的指针—–返回值
易出错的问题1:
返回局部变量的地址,局部变量生命周期短。
char *GetMemory1()
{
char buf[]=”hello”;
return buf;
}
易出错的问题2:
静态变量中只有一份,第二次修改会改变第一次的值。
char *GetMemory2(int n)
{
static char buf[100]=””;
for(int i=0;i<n;i++)
{
strcat(buf,”hello”);
}
return buf;
}
易出错的问题3:
全局变量在内存中只有一份,后面的修改会改变前面的值。
char buf[100]=””;
char *GetMemory3(int n)
{
for(int i=0;i<n;i++)
{
strcat(buf,”hello”);
}
return buf;
}
易出错的问题4:
内存泄漏。
char *GetMemory3(int n)
{
char *buf=(char *)malloc((strlen(“hello”)*n)+1);
buf[0]=”\0”;
for(int i=0;i<n;i++)
{
strcat(buf,”hello”);
}
return buf
}
以上就是对有问题的指针的总结了!