加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读