学堂 学堂 学堂公众号手机端

在C++中,数组无法直接作为函数的返回值返回,因为数组名会退化为一个指向数组首元素的指针

lewis 2年前 (2023-11-16) 阅读数 4 #技术

在C++中,数组无法直接作为函数的返回值返回,因为数组名会退化为一个指向数组首元素的指针。不过可以使用指针或者引用来返回数组的方式。

以下是使用指针返回数组的示例:

#include<iostream> int*createArray(intsize){ int*arr=newint[size]; for(inti=0;i<size;i++){ arr[i]=i; } returnarr; } intmain(){ intsize=5; int*arr=createArray(size); for(inti=0;i<size;i++){ std::cout<<arr[i]<<""; } //Remembertodeletethedynamicallyallocatedarraytoavoidmemoryleaks delete[]arr; return0; }

另外,也可以使用引用来返回数组的方式,代码示例如下:


#include<iostream> voidcreateArray(int*&arr,intsize){ arr=newint[size]; for(inti=0;i<size;i++){ arr[i]=i; } } intmain(){ intsize=5; int*arr; createArray(arr,size); for(inti=0;i<size;i++){ std::cout<<arr[i]<<""; } //Remembertodeletethedynamicallyallocatedarraytoavoidmemoryleaks delete[]arr; return0; }

在这两种方式中,都是动态分配了一个数组,并返回了数组的首地址。需要注意的是,在使用完毕后需要手动释放这些动态分配的内存,以避免内存泄漏。

版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门