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

kkun_3yue3 2013-07-10 11:00:07

如图所示,VS2010提示语法错误,我该如何声明这个函数才能做到:
1),返回数组参数a的引用或者指针?
2),如果要返回全新的数组呢?
...全文
268 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; }
内容概要:本文围绕“【SCUC】N-1故障集+安全约束机组组合研究(Matlab代码实现)”展开,系统探讨电力系统在N-1故障场景下的安全约束机组组合(SCUC),旨在实现系统安全性与运行经济性的协同优化。研究通过构建包含机组启停、出力计划、潮流约束、备用容量及N-1安全准则的数学模型,结合混合整数线性规划等优化算法,利用Matlab平台完成仿真求解,并引入YALMIP等建模工具提升建模效率。文档提供了完整的代码实现方案与测试案例,涵盖故障集的生成与处理方法,帮助用户掌握鲁棒性和分布鲁棒优化的基本思想,适用于电力系统安全校核与调度决策支持。; 适合人群:电力系统及相关专业的研究生、从事电力调度、能源优化的科研人员及工程技术人员。; 使用场景及目标:① 掌握N-1安全准则在机组组合中的建模方法与实现流程;② 开展安全约束机组组合(SCUC)与安全约束经济调度(SCED)的仿真分析;③ 利用Matlab/YALMIP快速搭建电力系统优化模型并进行求解与验证。; 阅读建议:建议读者结合文档内容与网盘提供的完整资源(含代码与数据),动手实践建模与调试过程,重点关注约束条件的设定、故障场景的枚举与处理策略,同时参考相关文献深化对鲁棒优化与分布鲁棒方法的理解。

65,211

社区成员

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

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