【作业】二级指针做输出(在被调函数中分配空间,主调函数中使用)
//实现的目标:把两个字符数组作为输入,排好序保存到另外一个字符数组中。
#include<iostream>
using namespace std;char** sort(char Arr1[][10],int num1,char **Arr2,int num2)
{int len = num1+num2;
//在被调函数中定义变量Arr3,并分配内存空间,最后return返回给主函数main(即二级指针作输出)char** Arr3 = (char **)malloc(sizeof(char*)*len); //定义Arr3,并分配内存空间for(int l=0;l<len;l++){Arr3[l] = (char*)malloc(sizeof(char)*100); //相当于动态分配len个数组memset(Arr3[l],0,sizeof(char)*100);}
//把Arr1、Arr2拷贝给Arr3int i=0;int j=0;for(i=0;i<num1;i++){strcpy(Arr3[i],Arr1[i]);}for(j=0;j<num2;j++){strcpy(Arr3[i+j],Arr2[j]);}//对Arr3进行排序for(int m=0;m<len;m++){for(int n=m+1;n<len;n++){if(strcmp(Arr3[m],Arr3[n])>0){//交换(方法一:动态数组的strcpy)//char ch[100] = {'\0'}; //静态分配内存空间//strcpy(ch,Arr3[m]);//strcpy(Arr3[m],Arr3[n]);//strcpy(Arr3[n],ch);//交换(方法二:Arr3[i]作为指针,指向字符串,对指针进行交换)char *ch=NULL; //记得定义的时候进行初始化ch = Arr3[m];Arr3[m] = Arr3[n];Arr3[n] = ch;}}}return Arr3;  //return返回给主函数main
}
void print_Arr(char **Arr3,int num)
{for(int i=0;i<num;i++){cout<<Arr3[i]<<endl;}
}
void free_Arr(char** Arr,int num) //释放
{for(int i=0;i<num;i++){if(Arr[i]!=NULL){free(Arr[i]);Arr[i]=NULL;}}free(Arr);Arr=NULL;
}int main()
{char** Arr3 = NULL;char Arr1[][10] = {"Cc","DD","AA","FF","BBB"};char *Arr2[10] = {"QQQ","BBBB","HHHHH"};Arr3 = sort(Arr1,5,Arr2,3);print_Arr(Arr3,8);free_Arr(Arr3,8);getchar();
}

第四天2017/03/31(下午2:结构体、数组)相关推荐

  1. 第四天2017/03/31(下午1:结构体、数组)

    //备用知识:没有内存,哪有指针? int main() {//错误程序char *name; //此处只定义了指针name(指针占4个字节),并没有给name分配内存//name = (char*) ...

  2. 第四天2017/03/31(上午:指针、数组的小知识)

    1.指针数组的应用场景(用处很小) (1)int main(int argc,char* argv[])//cmd命令行 (2)菜单 2.野指针问题 [概念]指针p指向的内存空间被释放掉,但是p指针的 ...

  3. new 一个结构体数组_每天一个IDA小技巧(四):结构体识别

    之前提到IDA可以将一长串的数组数据声明变成一行数组声明,简化反汇编代码,对于结构体,IDA也同样支持通过各种设置工具来改善结构体代码的可读性. 这篇文章的目标是将[edx+10h]之类的结构体元素访 ...

  4. C语言集锦 | 03 - C语言的复合数据类型(typedef关键字、结构体、枚举体、共用体)

    文档版本 更新时间 更新内容 v1.0 2020-09-14 初稿完成 文章目录 一.typedef关键词 二.结构体(重点) 1. 为什么需要结构体 2. 什么是结构体 3. 如何定义结构体 4. ...

  5. 【419天】跃迁之路——程序员高效学习方法论探索系列(实验阶段176-2018.03.31)...

    @(跃迁之路)专栏 专栏调整通知(2018.3.13) 由于SegmentFault对专栏文章内容和格式有一定要求,个人时间精力有限,每天更新的<我爱刷题系列>和<每日项目总结系列& ...

  6. 【系统分析师之路】2017年系统分析师下午案例分析真题

    [系统分析师之路]2017年系统分析师下午案例分析真题 系统分析师下午案例分析真题 [系统分析师之路]2017年系统分析师下午案例分析真题 2017年系统分析师下午案例分析第一题(系统设计) 我的解答 ...

  7. AI+5G:2019.03.31第11届中国(深圳)IT领袖峰会【IT新未来: 5G与人工智能】内容概要

    AI+5G:2019.03.31第11届中国(深圳)IT领袖峰会[IT新未来: 5G与人工智能]内容概要 导读 5G+AI双核启动会更加珠联璧合.相得益彰. IOT 采集数据 → Deel Learn ...

  8. 星期三,今天早上上了四节JS课程,下午听健康讲座,晚上装系统

    星期三,今天早上上了四节JS课程,下午听健康讲座,晚上装系统.我想说装系统是最浪费时间的,以前大一的时候,有一段时间喜欢上装系统,我去有时候一个系统装了两三天,因为有很多问题. ~ 后面就不研究了,昨 ...

  9. 软考解析:2017年上半年下午试卷

    软考解析:2017年上半年下午试卷 第一题:数据流图 第二题:数据库设计 第三题:面向对象开发 真题 理论 类图 状态图 解题思路 第四题:算法与数据结构 第五题:设计模式与Java 转载于:http ...

最新文章

  1. 第二百二十节,jQuery EasyUI,Slider(滑动条)组件
  2. CVPR 2021 | pixelNeRF:一种基于NeRF的多视图三维重建网络
  3. oracle中怎样查询用户权限
  4. 别找了,这才是 Pyecharts 的正确打开方式!
  5. 玩转oracle 11g(17):命令学习5
  6. Sublime Text快捷键去除空白行
  7. python中表示空类型的是_python中什么表示空类型
  8. VUCA时代下,如何有效提高项目成功率?
  9. Android开发必备知识
  10. html中哪些字体不识别中文字体,div字体_正确设置div兼容的汉字中文字体
  11. 1.ISIS基本理论
  12. Navicat Premium的下载及安装
  13. 手机dpi修改工具_修改手机的分辨率,让你的手机更流畅
  14. Vic-软件测试-开始软件测试
  15. vue-router路由跳转与打开新窗口
  16. VM打开虚拟机,宿主机重启(AMD)
  17. wget oracle安装包,linux下wget方式直接下载jdk1.8.rpm格式安装包及环境变量配置
  18. Comet OJ - Contest #6 problemB - 双倍快乐
  19. 《安富莱嵌入式周报》第289期:开源回流焊,首发开源跨平台电路仿真软件,用于电气化学的电位仪,超炫酷的双语音模拟合成器,逆向工程师对波音787适航指令的看法
  20. 数据科学工作中存在的7大问题与解决方案

热门文章

  1. 面试总结-腾讯产品群面
  2. 滑块验证码识别 java版本
  3. Spring Remoting: Remote Method Invocation (RMI)--转
  4. android studio 3.0新功能介绍
  5. 数据挖掘十大经典算法之——AdaBoost 算法
  6. 【Python】matplotlib基础:数据可视化
  7. php中的单引号、双引号和转义字符
  8. 凭什么还能独吞iPhone 8的“芯”?
  9. 深入理解分布式技术 - 漫谈分布式事务及解决方案
  10. 小工匠聊架构 - 缓存与数据库【双写不一致】【读写并发不一致】解决方案一览