天天看点

指针作为函数返回值需要注意的情况指针作为函数的返回值,会遇到的误解问题

指针作为函数的返回值,会遇到的误解问题

#include<cstdio>

int *buffer();

int main()

{

 int *p = buffer();

  int i;

  for(i  = 0;i < 10;i++)

  {

p[i] = i;

printf("%d ",p[i]);

 }

return 0;

}

int *buffer()

{

int a[100];

return a;

}

a为局部变量,但在VC++6.0 中运行结果是正确的

指针作为函数返回值需要注意的情况指针作为函数的返回值,会遇到的误解问题

如果在别的C++ 变异环境中上述局部变量作为指针返回值出错,可选择下面两种方式纠正: 1、将函数实现中的局部变量定义为static 2、将返回的值定义为全局变量

继续阅读