有问题的指针—-返回值

  • Post author:
  • Post category:其他


有问题的指针—–返回值

易出错的问题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

}


以上就是对有问题的指针的总结了!



版权声明:本文为qq_41896808原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。