c – 为什么我不能返回数组?
发布时间:2020-12-16 09:51:04 所属栏目:百科 来源:网络整理
导读:我试图从函数返回指向数组的指针,但我有一个问题.当我尝试像这样输出: #include iostreamusing namespace std;int* Somma_Array(int[],int[],int);int main(){ int n; cinn; int A[n],B[n]; for(int i=0;in;i++)cinA[i]; for(int i=0;in;i++)cinB[i]; int *
我试图从函数返回指向数组的指针,但我有一个问题.当我尝试像这样输出:
#include <iostream> using namespace std; int* Somma_Array(int[],int[],int); int main() { int n; cin>>n; int A[n],B[n]; for(int i=0;i<n;i++)cin>>A[i]; for(int i=0;i<n;i++)cin>>B[i]; int *c=Somma_Array(A,B,n); for(int i=0;i<n*2;i++)cout<<c[i]; } int* Somma_Array(int v[],int p[],int size) { int r[size*2]; for(int i=0;i<size;i++)r[i]=v[i]; for(int i=0;i<size;i++)r[i+size]=p[i]; return r; } 它打印奇怪的数字而不是实际的数字.我尝试做了this问题所说的但是它不起作用.它给了我以下警告: [Warning] address of local variable 'r' returned [enabled by default] 我正在使用流血的dev-c. 解决方法
您定义了一个堆栈已分配的数组r,当您退出函数Soma_Array时会将其销毁.这是(很多)原因之一,矢量比普通数组更受欢迎 – 它们为您处理分配和释放.
#include <vector> std::vector<int> getArray() { std::vector<int> a = {1,2,3}; return a; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |