C++函数返回数组,C++如何返回数组
c如何返回数组1。区分前言指针和指针变量背景2。第一()第二()优化文本3。总结4。更新日志。
指针和指针变量的区别
int x=5;
X //这是指针变量X的地址,称为它的指针
Int * temp=x //temp是一个变量,一个指针变量,它存储x的地址。
在后台学习的过程中,偶然碰到,想把整个数组返回并打印出来。现整理如下。
第一次()*我首先想尝试返回一个int类型,然后打印出来。
#include iostream //能否返回指针类型的数据,以便打印数组?
使用命名空间std
Int* GenerateArray() //这是不可能的。
{
int a[5]={ 1,2,3,4,5 };
返回a;
}
int main()
{
int * a=generate array();
for(int I=0;i5;我)
cout a[I]“”;
返回0;
}
原因:返回时数组A占用的内存空间已经被释放,只返回了A的第一个地址,所以以下是非法访问。
第二次()想到了动态打开内存最后释放的方法。
#包括iostream
使用命名空间std
int * a=new int[5];//动态分配内存
int* GenerateArray()
{
for(int I=0;i5;我)
a[I]=I 1;
返回a;
}
int main()
{
int * b=generate array();
for(int I=0;i5;我)
cout b[I]“”;
删除[]a;//记得最后放出来
返回0;
}
其实优化可以设置一个没有返回值的函数,定义一个动态分配的数组,修改后返回,然后释放,也完成了目标。
#包括iostream
使用命名空间std
Void GenerateArray(int *a) //动态分配内存
{
for(int I=0;i5;我)
a[I]=I 1;
}
int main()
{
int * a=new int[5];
generate array(a);
for(int I=0;i5;我)
cout a[I]“”;
删除[]a;
返回0;
}
3.总结动态内存分配的灵活使用。
最后,记得删除
4.2022年4月20日更新日志。
欢迎评论指正~ ~
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。