0、指针    就是地址
  1、指针类型: 基本类型 
  2、空指针类型变量:没有意义,只是一个指针空间,用于记录地址(不能运算)
        void* 变量;
    注:由于空间指针void*不知道尺寸(类型),是不能进行+ -运算的
  3、空地址:每个数据空间都有地址(地址>0),设置地址为0的指针为空指针(不指向任何的元素)        
        注:指针变量必须初始化
        typedef NULL (void*)0;
        
堆区 (程序员空间):空间由用户申请,由用户来释放空间。
     API: 申请  malloc(size_t bytes)    释放:free      
        注:bytes代表字节的数量
        注:malloc/realloc返回值为NULL,申请失败
        注:头文件为 stdlib.h
    3.1使用步骤:
        1、申请 p=malloc(size_t)
        2、使用 
        3、释放    free(p);
        3.1.1变量空间
            
        3.1.2数组空间:
            概念:是一块同类型且连续的存储空间

二分查找,利用动态数组

#include<stdio.h>#include<stdlib.h>void main(){//申请一块内存空间  buf[8]int* p=(int *)malloc(sizeof(int)*8);    //8个人的成绩 且每个元素为4Byteif(NULL!=p){int i=0;while(i<8){*(p+i)=i+1;i++;                   }int l=0,r=7,mid;while(l<=r){mid=(l+r)/2;if(5<p(mid)){r=mid_1;}else if(5>p(mid)){l=mid+1;}else{printf("查找成功\n");break;}  }}

利用动态数组的方法写去一个字符

#include<stdio.h>
#include<stdlib.h>
void main()
{
//定义指针变量存放地址char* pc=NULL;
//分配空间pc=(char *)malloc(sizeof(char));
//使用空间if(NULL!=pc){*pc='a';printf("%c\n",*pc);}
//释放空间if(NULl!=pc){free(pc);pc=NULL;}}

利用结构体,动态数组写入元素 ,如果空间不够,继续申请一个空间,并且将老空间赋值给新空间

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct Array
{int* data;                   //记录堆区地址unsigned short len;        //容量长度short index;              //索引 实际的长度};
void main()
{
//功能:1,增加元素 2.查找3.遍历int opt=0;struct Array a={NULL,0,-1};while(1){printf("please input 0/1/2/3");switch(opt){case 0:  //释放{if(len>0){  free(a.data)=NULL;a.data=NULL;a.len=0;a.index=-1;}return ;  //结束函数}break;case 1:   //插入成绩 当容量不足的时候申请空间{int score;printf("请输入成绩");scanf("%d\n",&score);//判断是否为满if(a.index+1=a.len){printf("为满");int* pnew=(int*)malloc(sizeof(int)*(a.len+5));if(NULL!=pnew){//将老空间赋值给新空间/*int i=0;for(i=0;i<a.index;i++){pnew[i]=a.data[i];}*/memcmp(pnew,a.data,(a.len)*sizeof(int));free(a.data);a.data=NULL;a.len+=5;}else{int sc;printf("please input");scanf("%d\n",&sc);a.data[++index]=sc;}}}}}

动态数组 【详解】相关推荐

  1. Delphi动态数组详解

    获取动态数组的首地址时,要加索引号如:arr:array of byte;在move blockread等函数中使用时要加[0]索引,如:move(arr[0],newarr[0],length)等.

  2. Java中大数据数组,Java基础学习笔记之数组详解

    摘要:这篇Java开发技术栏目下的"Java基础学习笔记之数组详解",介绍的技术点是"java基础学习笔记.基础学习笔记.Java基础.数组详解.学习笔记.Java&qu ...

  3. php遍历关联数组详解,php遍历关联数组

    php 动态关联数组,PHP 反射API,php遍历关联数组,php关联数组的输出 PHP数组详解_计算机软件及应用_IT/计算机_专业资料.PHP数组语法及其应用详细讲解,深入的探讨了数组的用法,以 ...

  4. C语言0长度数组(可变数组/柔性数组)详解

    CSDN GitHub C语言0长度数组(可变数组/柔性数组)详解 AderXCoding/language/c/zero_length_array 本作品采用知识共享署名-非商业性使用-相同方式共享 ...

  5. Android 动态分区详解(一) 5 张图让你搞懂动态分区原理

    文章目录 0. 导读 1. 动态分区详解的背景 1.1 背景 1.2 动态分区的本质 2. Linux device mapper 驱动 3. Android 动态分区布局 3.1 动态分区布局 3. ...

  6. java合法的数组声明_Java数组详解

    Java数组详解 数组详解 1.数组概述 数组是相同类型数据的有序集合 每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们 2.数组声明和创建 ①数组声明形式 dataType[] a ...

  7. c语言数组详解视频,C语言数组详解

    <C语言数组详解>由会员分享,可在线阅读,更多相关<C语言数组详解(55页珍藏版)>请在人人文库网上搜索. 1.就是一组具有固定数目的.有序的.类型相同的数据的集合.根据数组下 ...

  8. 【数据结构】树状数组详解(Leetcode.315)

    前言 最近做题时遇到一个关于树状数组的题力扣https://leetcode-cn.com/problems/count-of-smaller-numbers-after-self/但是CSDN上仅有 ...

  9. JavaScript数据结构与算法——数组详解(下)

    1.二维与多维数组 JavaScript只支持一维数组,但是通过在数组里保存数组元素的方式,可以轻松创建多维数组. 1.1 创建二维数组 二维数组类似一种由行和列构成的数组表格,在JavaScript ...

  10. JavaScript数组结构与算法——数组详解(中)

    迭代器方法 在上篇中,我们探讨了很多数组方法,接下来总结一下最后一组方法--迭代器方法.这些方法对数组的每个元素应用一个函数,可以返回一个值.一组值.或者一个新数组. 1.不生成新数组的迭代器方法 以 ...

最新文章

  1. WINDOWS SERVER 2003 组策略应用
  2. 调用链路_全链路日志分析解决方案介绍
  3. 修改vsftpd的默认根目录/var/ftp/pub到另一个目录
  4. scrapy框架的理解
  5. 前端学习(1950)vue之电商管理系统电商系统之渲染添加父类的对话框
  6. redis aof 备份和恢复_Redis 持久化机制的介绍,了解这些流程很重要
  7. 后端开发(1)---大话后端开发的技巧大集合
  8. oracle统计每天数据增量,每天的业务数据增量导入oracle库方法讨论
  9. 固定二进制位的整型变量
  10. 2018 【第九届蓝桥杯省赛】 C/C++ B组
  11. java api es_中间件系列之ElasticSearch-3-Java API操作ES
  12. 专利附图绘制-VISIO线条图绘制入门
  13. FLUENT 汽车流场仿真分析-结构网格划分视频教程
  14. Excel VBA自动填充公式
  15. nginx代理、白名单过滤、双域名备案代理
  16. mysql计算员工年终奖金_年终奖 扣税计算
  17. 2014大众点评Hackathon参赛感想
  18. LPC55S69开发笔记
  19. 鱼眼相机1080P的标定内参转换为720P的内参鱼眼相机标定方法
  20. eclipse越来越不稳定了

热门文章

  1. 抖音四面被拒,再战头条终获offer,面试真题解析
  2. 区块链与量子计算(九章)
  3. python猜拳游戏编程代码_求助,用python编写一个猜拳游戏程序,要求有这样的开头...
  4. View 的四种 OnClick 方式
  5. Android入门教程二之开发环境搭建
  6. 自控力 笔记7 出售未来:及时享乐的经济学
  7. 技术干货 | 网易云信音视频通话产品中的音频效果功能
  8. 从此之后,Creator 再无秘密
  9. Python抢票工具
  10. 深入理解设计模式-简单工厂模式vs工厂方法模式vs抽象工厂模式对比讲解