堆区 (程序员空间):空间由用户申请,由用户来释放空间。
     API: 申请  malloc(size_t bytes)    释放:free      
        注:bytes代表字节的数量
        注:malloc/realloc返回值为NULL,申请失败
        注:头文件为 stdlib.h

使用步骤:
        1、申请 p=malloc(size_t)
        2、使用 
        3、释放    free(p);
        3.1.1变量空间

例题

#include<stdio.h>
#include<stdlib.h>
#include<string.h>struct Array
{int* data;//记录堆区unsigned short len;//容量大小short index; //实际大小
};void main()
{int opt=0;struct Array a={NULL,0,-1};while(1){printf("please input[1/2/3/0]:");scanf("%d",&opt);switch(opt){  case 0://释放{printf("欢迎再次使用:\n");if(a.len>0)//长度>0;{free(a.data);a.data=NULL;a.len=0;a.index=-1;}return;//结束函数}break;case 1://插入成绩:当容量不满足才申请空间{int score;printf("输入成绩:");scanf("%d",&score);//判断是否为满if(a.index+1==a.len)//为满{printf("为满\n");//申请新的空间int* pnew=(int*)malloc((a.len+5)*sizeof(int));if(NULL!=pnew){//将老空间赋值给新空间memcpy(pnew,a.data,a.len*sizeof(int));    a.len=a.len+5;//修改长度//释放free(a.data);//重新指向a.data=pnew;} }//插入数据a.data[++a.index]=score;}break;case 2://查找成绩{int score;printf("请输入查找成绩:");scanf("%d",&score);int z=0;while(a.index>=0){if(a.data[a.index]==score){z=1;printf("存在%d\n",score);break;}a.index--;}if(z==0){printf("不存在\n");}}break;case 3:{int i=0;while(i<=a.index){printf("%d ",a.data[i]);i++;}}break;default:printf("输入有误\n");}}
}

0723数组复习 堆区 动态数组相关推荐

  1. c++删除数组中重复元素_在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法...

    大家好,我们今日继续讲解VBA数组与字典解决方案第22讲:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法.如果文本中含有大量的重复值,此时,如果我们要剔除重复值,该怎么办?用VBA的方法 ...

  2. C++在堆区创建数组

    new申请数据空间 c++中的new在堆区申请空间的时候的格式是: int * p = new int(10); //该代码的意思就是说在堆区申请的内存赋值为10 //int 后面括号里面写的就是你的 ...

  3. c语言如何生成字符型动态数组,C语言构建动态数组完整实例

    C语言构建动态数组完整实例 本文以一个完整的实例代码简述了C语言构建动态数组的方法,供大家参考,完整实例如下: #include #include int main(void) { int len; ...

  4. HDU ACM 1181 变形课 (广搜BFS + 动态数组vector)-------第一次使用动态数组vector

    http://acm.hdu.edu.cn/showproblem.php?pid=1181 题意:给我若干个单词,若单词A的结尾与单词B的开头相同,则表示A能变成B,判断能不能从b开头变成m结尾. ...

  5. 按键精灵什么是动态数组?如何使用动态数组?(新手进阶)

    前言 如果你没有编程基础,对数组还没什么了解,建议不要学习本帖知识,先学习了解数组的基本知识.对数组有基本了解往下看, 直入主题,什么是动态数组?怎么用?概念上的东西不多说了,看例子! 正文 // 什 ...

  6. 用最复杂的方式学会数组(Python实现动态数组)

    聊聊Python序列类型的本质 在本博客中,我们来聊聊探讨Python的各种"序列"类,内置的三大常用数据结构--列表类(list).元组类(tuple)和字符串类(str)的本质 ...

  7. linux数组递增,shell 输入动态数组并遍历的简单例子

    [root@wzlvm shell]# cat shell_array_test.sh #!/bin/bash # # # # Aut wzl # Shell Document ## 判断是否传入参数 ...

  8. C++总结笔记(十)——堆区内存开辟数组和二级指针

    文章目录 一.堆区开辟数组 1. 数组指针与指针数组的区别 2. 1维数组 3. 2维数组 二.二级指针 一.堆区开辟数组 1. 数组指针与指针数组的区别 数组指针是指指向数组的指针,它的本体是一个指 ...

  9. 数据结构与算法:动态数组(利用万能指针实现任意类型数组操作)

    原理介绍 我们利用万能指针来实现动态数组,数组元素类型可以是任意类型,因为我们只维护用户提供的数据的地址,所以可以用万能指针来接受,这样就实现了类似C++中的模板功能了. 先说说动态数组和静态数组.静 ...

  10. ca32a_demo_c++创建动态数组

    /* ca32a_demo_c++创建动态数组20200127 静态是在堆栈上创建的,动态实在堆(heap)上创建的 堆(heap)-自由存储区(free store)-内存的一个区域 c语言:mal ...

最新文章

  1. Spanned.SPAN_EXCLUSIVE_EXCLUSIVE的含义
  2. Linux发行版上安装Netbeans IDE的各种方法
  3. 中国楼市场的真相————写在厦门楼市崩盘之后
  4. 如何洗牌 ListT 中的元素?
  5. 上传RNA-seq数据到NCBI GEO数据库
  6. java中equals方法的用法以及==的用法(转)
  7. RIP协议路由环路及解决方案
  8. restful api和普通api有什么特点_Django REST Framework教程(1): 什么是序列化和RESTful的API
  9. android中获取应用程序(包)的信息,Android中获取应用程序(包)的信息PackageManager的使用(一).doc...
  10. python导入mat文件_python读取并写入mat文件的方法
  11. SignalR 服务器系统配置要求
  12. dwg格式的计算机图,电脑上怎么打开dwg文件?
  13. python实现手机通讯录_Python 实现简单的电话本功能
  14. java 社交网站_java学习之电影《社交网络》Facemash算法实现
  15. nodejs 中读取 package.json 文件内容
  16. cosine_annealing
  17. 架构成长之路 | 图解分布式共识算法Paxos议会协议
  18. 贾扬清、李沐、陈天奇:如何看待国内开源现状?
  19. 知识管理从建立知识库做起
  20. 华为起诉最新进展,国内航司暂停运行有关客机,收买家庭不得继续抚养被解救儿童,脸书创始人后悔没早学微信,这就是今天的大新闻...

热门文章

  1. 第一本书应考虑哪些细节?
  2. 用计算机实测技术研究声波和拍内容,基础物理实验/面向21世纪课程教材
  3. wc2018冲刺期总结
  4. 【行业专题报告】城市、智慧城市-专题资料
  5. 利用netstat查看http为短连接还是长连接?
  6. numpy.array函数详解
  7. 机密领域管理扩展技术(RME)对TF-A的修改分析笔记。
  8. 美团java后端面试题目_美团笔试题(Java后端5题2小时)
  9. HTML5七夕情人节表白网页(花瓣相册表白) HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 css爱心表白
  10. 后端开发面试自我介绍_java开发面试自我介绍