C++ 从函数返回指针(函数外返回局部静态变量的地址)
来源:互联网 发布:org.apache.struts2 编辑:程序博客网 时间:2024/06/06 23:56
C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。
错误代码:
int main(){ int *p; p=funcGetPointer(); for (int i = 0; i < 10; i++) { cout<<"*(p+"<<i<<"): "; cout<<*(p+i)<<endl; } return 0;} //函数返回指针int * funcGetPointer(){ int arr[10]; srand((unsigned)time(NULL)); for (int i = 0; i < 10; i++) { arr[i]=rand()%7+2; } cout<<"The contents is:"<<endl; for (int i = 0; i < 10; i++) { cout<<arr[i]<<" "; } cout<<endl; return arr;}
传递之后并不能得到正确的数组的值。
原因就是在数组内的数组没有设为静态。
更改:其他位置不变,只是将返回指针的函数中的数组变为静态即可:
运行结果:
阅读全文
0 0
- C++ 从函数返回指针(函数外返回局部静态变量的地址)
- 如果从函数中返回局部变量的地址,引用或者指针的形式,则变量类型必须是静态的或者常量,即不在栈中存储
- C语言函数不能返回局部变量的地址
- C语言函数不能返回局部变量的地址
- 函数返回局部变量地址
- 函数返回局部变量地址
- C函数返回局部变量
- C 函数返回局部变量
- C函数返回局部变量
- c 函数 返回局部变量
- C函数返回局部变量
- c语言中函数返回局部变量的指针(一些容易犯错的地方)
- 返回指向局部变量指针的函数 与 返回局部变量引用的函数
- C语言的那些坑(函数返回局部变量)
- 函数局部变量的返回
- 函数局部变量的返回
- 有关指针函数不可以返回局部变量的地址的三种解决方法
- 局部变量与函数返回地址
- POJ3009 解题报告
- 合并两个有序链表
- 杨辉三角
- SQL学习笔记:表的约束
- List ADT的两种实现方式:ArrayList和LinkedList
- C++ 从函数返回指针(函数外返回局部静态变量的地址)
- leetcode Two Sum 解决思路
- poj3693(后缀数组+lcp+rmq)
- 170718 Linux 文件路径切换与查找
- HDU
- 正则表达式常用验证
- laravel5.4开启sql调试
- web错误集锦(自看)
- 浅谈HTML5 postMessage