教学内容:
内存的使用
动态内存分配malloc函数
分配内存时使用sizeof运算符
用指针访问内存
以数组的形式访问内存 一、内存的使用
堆(heap)
在程序执行期间分配内存时,内存区域中的这个空间称为堆(heap)。,malloc,calloc
栈(stack)
一般是函数分配给本地的参数和本地变量(局部变量)。 二、动态内存分配malloc函数
在C语言中最简单的内存分配函数是malloc函数,原型如下:
void *malloc( size_t size );
// 字节(BYTE) char 成功将返回分配内存空间的地址值,失败将返回NULL也就是0;
例:
int *pNum=(int*) malloc(); //分配100字节,也就是25个int类型的空间 三、分配内存时使用sizeof运算符
例:
int *pNum=(int*) malloc(*sizeof(int)); //分配字节,也就是个int类型的空间
double *pfNum=(double *) malloc(*sizeof(double )); 四、用指针访问内存
int *pNum=(int*) malloc(*sizeof(int));
int i,*p;
p=pNum;
for (i=;i<;i++)
{
*pNum++=i;
}
pNum=p;
for (i=;i<;i++)
{
printf("%d,", *pNum++); //pNum=pNum+25;
} getchar();
五、以数组的形式访问内存
int *pNum=(int*) malloc(*sizeof(int)); //3*8,4*6,6*4,2,12
int i; for (i=;i<;i++)
{
pNum[i]=i;
} for (i=;i<;i++)
{
printf("%d,", pNum[i]); //pNum=pNum+25;
}

c++ 动态数组,指针与动态内存分配的更多相关文章

  1. delphi动态数组指针问题

    就一个button事件 procedure TForm1.btn7Click(Sender: TObject); Type TMyArr = array of array of array of In ...

  2. 二维指针的malloc内存分配(转)

    写代码的时候会碰到多维数组的内存分配和释放问题,在分配和释放过程中很容易出现错误.下面贴上一些示例代码,以供参考. 如果要给二维数组(m*n)分配空间,代码可以写成下面: char **a, i; 1 ...

  3. (0)c++入门——认识指针与数组——指针即是内存中地址。

    初识指针 首先需要了解一个概念,计算机的内存(或者说是寄存器)都是有地址的. <c++ primer plus>一书P37中提到这样一个概念:为把信息存储在计算机中,程序必须记录3个基本属 ...

  4. go 动态数组 二维动态数组

    go使用动态数组还有点麻烦,比python麻烦一点,需要先定义. 动态数组申明 var dynaArr []string 动态数组添加成员 dynaArr = append(dynaArr, &quo ...

  5. 2018.9.30 Java中数组的存储与内存分配

    java 数组与集合的区别 集合:长度可变,可以存放不同类型的元素,只能存放引用类型! 数组:长度固定,只可以存放相同的同种类型的元素,可以存放数据类型也可以存放引用类型! 数组定义的三种方式 // ...

  6. 重拾c语言之动态内存分配

    动态内存分配 传统数组的缺点: 1数组长度必须事先制定,且仅仅能是长整数不能是变量 2传统形式定义的数组该数组的内存程序无法手动释放 3数组一旦定义,系统就会为该数组分配的存储空间就会一直存在直到该函 ...

  7. C++二维数组动态内存分配

    对于二维数组和二维指针的内存的分配 这里首选说一下一维指针和一维数组的内存分配情况. 一维: 数组:形如int  a[5];这里定义了一个一维数组a,并且数组的元素个数是5,这里的a是这五个元素的整体 ...

  8. C++ Primer : 第十二章 : 动态内存之动态数组

    动态数组的分配和释放 new和数组 C++语言和标准库提供了一次分配一个对象数组的方法,定义了另一种new表达式语法.我们需要在类型名后跟一对方括号,在其中指明要分配的对象的数目. int* arr ...

  9. malloc,colloc,realloc内存分配,动态库,静态库的生成与调用

     1.在main方法里面直接定义一个很大的数组的时候.可能会出现栈溢出:错误代码演示: #include<stdio.h> #include<stdlib.h> void ...

  10. 菜鸟nginx源代码剖析数据结构篇(一)动态数组ngx_array_t

    菜鸟nginx源代码剖析数据结构篇(一)动态数组ngx_array_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csd ...

随机推荐

  1. SQL Server 数据表代码创建约束

    约束 非空约束 --NN,ont null constraint 必须填写数据不能为空 --指定表 Student 添加名为NN_Student_sClassId非空约束(指定列名sClassId), ...

  2. python操作Exchange邮箱实例(-)

    需求很简单,就是实现按公司域名及服务器模拟exchange发送邮件,主要是协助自动化测试.主要功能:收件人/抄送/正文html/附件 本实例基于:python2.7.11 exchangelib1.1 ...

  3. Python初学者第二十二天 函数进阶(1)

    22day 1.函数命名空间: 2.函数作用域的查找顺序:LEGB locals->enclosing function ->globals ->_builtins_ a.local ...

  4. C#综合揭秘——分部类和分部方法

    在面向对象的“封装闭合性”开发原则中,一向提倡的是把独立的功能封装在一个类里面的!但从Visual Studio 2005开发,系统提供了一个分部类的开发方式一直受到争议,很多人认为把同一类的功能分布 ...

  5. NCE3

    Lesson1  A puma at large Pumas are large, cat-like animals which are found in America. When reports ...

  6. VRSProcess(二)

    1._beginthreadex再谈 Windows操作系统提供了这样的一种解决方案——每个线程都将拥有自己专用的一块内存区域来供标准C运行库中所有有需要的函数使用.而且这块内存区域的创建就是由C/C ...

  7. HBase搭建部署

    基础环境准备 zookeeper集群(参开地址:https://www.cnblogs.com/starzy/p/10376642.html) Hadoop集群(参考地址:https://www.cn ...

  8. multi_index_container

    转自:https://blog.csdn.net/buptman1/article/details/38657807 multi_index_container: Boost Multi-index ...

  9. R语言常用语法和用法

    数据准备 height <- c(6.00, 5.92, 5.58, 5.92) 1 计算均值 mean(height) [1] 5.855 2 计算中位数 median(height) [1] ...

  10. mongodb的学习-6-命令简单使用

    1.创建数据库 use DATABASE_NAME 举例说明: > use another //创建了数据库another switched to db another > db anot ...