[向ganpengjin1,turingo提问] 问一个简单问题(2)如何声明一个返回数组的函数

kkun_3yue3 2013-07-10 11:00:07

如图所示,VS2010提示语法错误,我该如何声明这个函数才能做到:
1),返回数组参数a的引用或者指针?
2),如果要返回全新的数组呢?
...全文
167 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
图灵狗 2013-07-10
  • 打赏
  • 举报
回复
大概是这样的做法:

int* quick_sort(int a[])
{
    int* b = (int*)malloc(100);
    ...
    return b;
}

...

int a[] = {1, 2, 3};
int* b = quick_sort(a);
...
free(b);
引用 楼主 kkun_3yue3 的回复:
如图所示,VS2010提示语法错误,我该如何声明这个函数才能做到: 1),返回数组参数a的引用或者指针? 2),如果要返回全新的数组呢?
minnnnmi 2013-07-10
  • 打赏
  • 举报
回复
void quick_sort(int *a) // 这个参数其实既是一个输入类型的参数,也是个输出类型的参数。
rocktyt 2013-07-10
  • 打赏
  • 举报
回复
引用 8 楼 kkun_3yue3 的回复:
[quote=引用 5 楼 rocktyt2 的回复:] [quote=引用 4 楼 kkun_3yue3 的回复:] [quote=引用 1 楼 starytx 的回复:] int * quick_sort(int a[]) { return a; }
int *不是返回int指针吗?它与int[]不等同吧[/quote] quick_sort(int a[])传进去的参数实际上也是int*啊[/quote] 那我是不是可以这样声明
int * quick_sort(int *a)
{
    return a;
}
[/quote]可以
  • 打赏
  • 举报
回复
可以返回数组的指针,但必须指定数组的大小
typedef int(Array)[10];
Array* quick_sort( Array* a )
{
	return a;
}
真不如
int* quick_sort( int*a )
{
	return a;
}
minnnnmi 2013-07-10
  • 打赏
  • 举报
回复
可以这样,其实你没必要返回值。 void quick_sort(int *a) { return; } 就行了。
kkun_3yue3 2013-07-10
  • 打赏
  • 举报
回复
引用 5 楼 rocktyt2 的回复:
[quote=引用 4 楼 kkun_3yue3 的回复:] [quote=引用 1 楼 starytx 的回复:] int * quick_sort(int a[]) { return a; }
int *不是返回int指针吗?它与int[]不等同吧[/quote] quick_sort(int a[])传进去的参数实际上也是int*啊[/quote] 那我是不是可以这样声明
int * quick_sort(int *a)
{
    return a;
}
minnnnmi 2013-07-10
  • 打赏
  • 举报
回复
一般的需求,你返回个数组指针就行了。 或者你用vector来代替。
minnnnmi 2013-07-10
  • 打赏
  • 举报
回复
C++不能返回数组,数组本身又不支持赋值操作。 int a[5]; int b[5]; b = a; // c++不支持这样的操作
rocktyt 2013-07-10
  • 打赏
  • 举报
回复
引用 4 楼 kkun_3yue3 的回复:
[quote=引用 1 楼 starytx 的回复:] int * quick_sort(int a[]) { return a; }
int *不是返回int指针吗?它与int[]不等同吧[/quote] quick_sort(int a[])传进去的参数实际上也是int*啊
kkun_3yue3 2013-07-10
  • 打赏
  • 举报
回复
引用 1 楼 starytx 的回复:
int * quick_sort(int a[]) { return a; }
int *不是返回int指针吗?它与int[]不等同吧
rocktyt 2013-07-10
  • 打赏
  • 举报
回复
可以考虑一下返回std::array
sduxiaoxiang 2013-07-10
  • 打赏
  • 举报
回复
返回int*就是 全新的new了返回就是了 ,用完delete就ok
starytx 2013-07-10
  • 打赏
  • 举报
回复
int * quick_sort(int a[]) { return a; }

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧