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

kkun_3yue3 2013-07-10 11:00:07

如图所示,VS2010提示语法错误,我该如何声明这个函数才能做到:
1),返回数组参数a的引用或者指针?
2),如果要返回全新的数组呢?
...全文
261 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; }
内容概要:本文系统梳理了多个科研领域的前沿研究与技术实现,重点涵盖FDTD方法中的完美匹配层(PML)研究,以及Matlab/Simulink在电磁、电力、控制、通信、信号处理、图像处理、路径规划、能源系统优化等领域的仿真与算法实现。文中列举了大量基于Matlab和Python的科研案例,如风电功率预测、负荷预测、无人机三维路径规划、电池系统故障诊断、雷达模拟、通信编码、微电网优化调度等,并强调结合智能优化算法(如粒子群、遗传算法、深度学习等)提升系统性能。同时,提供了丰富的代码资源与仿真模型,涵盖永磁同步电机控制、逆变器设计、多智能体任务分配、虚拟电厂调度等复杂系统,助力科研人员快速开展复现实验与创新研究。; 适合人群:具备一定编程基础,熟悉Matlab/Python工具,从事电气工程、自动化、通信、人工智能、新能源、控制科学等相关领域研究的研发人员及研究生。; 使用场景及目标:① 学习并实现FDTD仿真中的PML边界条件以有效抑制数值反射;② 掌握Matlab/Simulink在多物理场建模、控制系统设计与优化算法中的综合应用;③ 借助提供的代码资源完成科研复现、课程设计、竞赛项目或工程原型开发; 阅读建议:此资源以科研实战为导向,不仅提供理论方法,更强调代码实现与仿真验证。建议读者结合自身研究方向,按目录顺序查阅相关模块,下载配套代码进行调试与二次开发,以达到学以致用、融会贯通的目的。

65,211

社区成员

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

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