[c++]返回数组

一维数组

其实如果支持vector的话,只要用引用就可以了。

void testFun(vector<int> &var)

1.返回函数指针

http://www.cnblogs.com/gisbeginner/archive/2012/10/30/2746313.html

在c++中是不允许数组作为函数的返回值的

int [] someFunction( ); //ILLEGAL 

要想实现函数返回一个数组,那返回对应数组里面类型的指针
you must return a pointer to the array base type and have the pointer point to the array. So, the function declaration would be as follows:

 int* someFunction( ); //Legal
int* doubler( int a[], int size)
{
int* temp = new int[size];
for ( int i =0; i < size; i++)
 temp[i] = 2*a[i];
 return temp;
 }
int main(){
int a[] = {1, 2, 3, 4, 5};
int* b;
b = doubler(a, 5);

delete[] b

return 0;
}

2.

void doubler( int* a, int size)
{
  for ( int i =0; i < size; i++)
       a[i]=0;
}
int main(){
  int a[5];
  doubler(a, 5);

  return 0;
}

二维数组

#include <iostream>
using namespace std;
void property(int shape[4][4])
{
    shape[0][0]=1;
}

int main()
{
    int shape[4][4];
    property(shape);
    cout<<shape[0][0];
    return 0;
}
#include <iostream>
using namespace std;
void property(int (*shape)[4])
{
    shape[0][0]=1;
}

int main()
{
    int shape[4][4];
    property(1,shape);
    cout<<shape[0][0];
    return 0;
}
void fun2(int **ga,int m,int n)
{
    ga=new int*[m];
    for(int i = 0; i < m; i++)
        ga[i] = new int[n];
}
int** newArray(int m,int n)
{
    int** array=new int*[m];
    for(int i = 0; i < m; i++)
        array[i] = new int[n];
    return array;
}


int main()
{
    int **shape;
    int m,n;
    m=2;n=4;
    shape=newArray(m,n);
    for(int i = 0; i < m; i++)
        delete []shape[i];
    delete []shape;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值