一个C++的返回参数问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 07:45:46
我想将一个数组做为返回对象,但是,不知道怎么做,假设说在子函数里面我建立了一个多维数组,要如何才能将这个数组拷贝到调用函数里面的一个相同维数的数组里面(相当于返回吧),有几种返回方式,对于指向指针的指针数组,我应该返回什么呢?可以返回这个指针数组的指针吗?
写程序不算久,望高手指点一二!

将数组的首地址作为函数参数传递就行了,实现双向传递。
比如排序
void Sort(a[])
{
...........
}
void main()
{
int b[3] = {3,5,8};
Sort(b);//或sort(&b[0]);
}

函数内部定义的对象都是局部对象,返回时会被销毁,所以要返回数组只能用new.但是这样要在函数外部delete,这不是个好方法.
一般修改数组的话可以选择传递数组首地址和维数.

int a[10];
void fun(int* pi, size_t size)
{
...
}
也可以使用引用,不过这个函数就只能接受维数10的数组
int a[10];
void fun(int (&ri)[10])
{
...
}

传数组的首地址
只要你了解数组的内存模型,就能明白

可以返回指向目标数组的指针~~