#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>  //包含头文件 

main(){int i = 3;//栈中 int arr[10];//栈中 int* p = malloc(sizeof(int) * 10);//p在栈中,malloc在堆里面长度为10个整型,malloc出来的内存是连续的。 *p = 10;*(p+1) = 20;printf("%#x\n", p);//0x3e3cf0 printf("%d\n", *p);//10 printf("%d\n", *(p+1));//20 printf("%d\n", p+1);//4078836 printf("%d\n", *(p+2));//0 printf("%d\n", *(p+3));//0
       free(p);system("pause");
}#include <stdio.h>
#include <stdlib.h>main(){int i = 3;int* p = &i;int** q = &p;int*** l = &q;printf("i的值为%d\n", ***l);//3 //l表示取出l内存空间的值,*l表示取出l内存空间值的内存空间的值,**l表示取出l内存空间值的内存空间值的内存空间的值。 system("pause");
}

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
main(){printf("请输入学生人数:");int count;scanf("%d", &count);//int b在C中是系统在栈中申请内存,系统负责回收的。// malloc申请的是堆内存由程序员释放。 //栈内存只有2M,连续的内存空间,先进来的后释放。 堆的内存和物理内存一样大,//堆不连续是用链表表示的,链表查找比连续的麻烦但是增删比连续的快。 //C是面向过程的没有对象概念所以没有new,malloc就是new。//静态内存是栈上分配的,编译的时候就已经分配好了,程序的怎个运行期间都存在,//例如全局变量和static变量。动态内存是堆上malloc或者new分配的。 //根据学生人数去动态申请堆内存 , int* p = malloc(sizeof(int) * count);//count个int类型 int i;for(i = 0; i < count; i++){printf("请输入第%d个学生学号:", i);scanf("%d", p+i);}printf("请输入新增的学生人数:");int newCount;scanf("%d", &newCount);p = realloc(p, sizeof(int) * (count + newCount));//扩充p内存 for(i = count; i < count + newCount; i++){printf("请输入第%d个学生学号:", i);scanf("%d", p+i);}for(i = 0; i < count + newCount; i++){printf("第%d个学生的学号是:%d\n", i, *(p+i)); }system("pause");
}

转载于:https://www.cnblogs.com/yaowen/p/4985285.html

android108 内存分配相关推荐

  1. C语言的变量的内存分配

    今晚看了人家写的一个关于C语言内存分配的帖子,发现真是自己想找的,于是乎就收藏了... 先看一下两段代码: char* toStr() {char *s = "abcdefghijkl&qu ...

  2. 释放变量所指向的内存_C++动态内存分配(学习笔记:第6章 15)

    动态内存分配[1] 动态申请内存操作符 new new 类型名T(初始化参数列表) 功能: 在程序执行期间,申请用于存放T类型对象的内存空间,并依初值列表赋以初值. 结果值: 成功:T类型的指针,指向 ...

  3. linux内存分配 连续 足够,linux内存池能分配连续物理内存吗

    中. size参数: 内核是基于页技术分配内存,以最佳的利用系统的RAM. linux处理内存分配的方法是:创建一系列的内存对象池,每个池的内存大小事固定的,处理分配请求时,就直接在包含足够大的内存块 ...

  4. Linux创建线程时 内存分配的那些事

    文章目录 问题描述 问题分析 针对问题1 的猜测: 针对问题2 的猜测: 原理追踪 总结 问题描述 事情开始于一段内存问题,通过gperf工具抓取进程运行过程中的内存占用情况. 分析结果时发现一个有趣 ...

  5. Eigen向量化内存对齐/Eigen的SSE兼容,内存分配/EIGEN_MAKE_ALIGNED_OPERATOR_NEW

    1.总结 对于基本数据类型和自定义类型,我们需要用预编译指令来保证栈内存的对齐,用重写operator new的方式保证堆内存对齐.对于嵌套的自定义类型,申请栈内存时会自动保证其内部数据类型的对齐,而 ...

  6. 栈区和堆区内存分配区别

    一直以来总是对这个问题的认识比较朦胧,我相信很多朋友也是这样的,总是听到内存一会在栈上分配,一会又在堆上分配,那么它们之间到底是怎么的区别呢?为了说明这个问题,我们先来看一下内存内部的组织情况. 从上 ...

  7. Memcache内存分配策略

    转自:http://tank.blogs.tkiicpp.com/2010/12/14/memcache%e5%86%85%e5%ad%98%e5%88%86%e9%85%8d%e7%ad%96%e7 ...

  8. 利用TCMalloc替换Nginx和Redis默认glibc库的malloc内存分配

    TCMalloc的全称为Thread-Caching Malloc,是谷歌开发的开源工具google-perftools中的一个成员.与标准的glibc库的Malloc相比,TCMalloc库在内存分 ...

  9. linux环境内存分配原理

    Linux的虚拟内存管理有几个关键概念: Linux 虚拟地址空间如何分布?malloc和free是如何分配和释放内存?如何查看堆内内存的碎片情况?既然堆内内存brk和sbrk不能直接释放,为什么不全 ...

最新文章

  1. sunday java_Sunday算法:最快的字符串匹配算法
  2. 如何获取独立项目开发经验
  3. 电机的入门之路系列5--二相四线,四相五线,四相六线电机的区分方法
  4. VB案例:素数判断与合数分解
  5. Win32 SDK消息处理技巧
  6. 程序员!别逼自己刷题了!每天花10分钟做这件事,编程能力暴增!
  7. 设计模式入门-工厂模式
  8. Fiddler抓包7-post请求(json)
  9. 百度员工:上午11点上班,晚上9点下班,年薪80万买房太轻松了
  10. 60秒Dapp快讯 | 全球公有链技术评估:以太坊在应用性上排第一;蚂蚁金服区块链试水医疗电子票据
  11. python中的ascii码是啥_python ascii码到u
  12. 元素地球化学类毕业论文文献有哪些?
  13. 计算机考研网课平台哪个好,考研网课哪家排名好
  14. js点击轮播或者自动轮播图代码
  15. 网易企业邮箱:给国外公司发邮件用什么邮箱?
  16. DaggerXXXComponent找不到问题
  17. 一款基于 SpringBoot 开发 OA 系统 !
  18. Contest RankList -- 2017年成都东软学院ACM冬季校赛(热身赛)
  19. 数据查询必备技能SQL调优:Mysql什么情况下不走索引
  20. ccf-csp 2018春季真题题解

热门文章

  1. c语言作业指导1,C语言程序设计实验与习题指导
  2. matlab您的安装可能需要执行其他配置步骤_手把手超详细介绍MATLAB+RoadRunner+Unreal Engine自动驾驶联合仿真...
  3. java Parallel gc_JVM Parallel Scavenge GC日志详解
  4. s matlab toolbox,Matlab Robotic Toolbox工具箱学习笔记(一 )
  5. python中for循环语句格式_Python基础-10循环语句
  6. 文本分类入门(番外篇)特征选择与特征权重计算的区别
  7. CVPR 2016 SINT:《Siamese Instance Search for Tracking》论文笔记
  8. BZOJ 2959 长跑 (LCT、并查集)
  9. 计算机无法开机按了f2,Win7系统开机需要按F2怎么解决?
  10. python等差数列末项计算_Python 30道高频面试题及详细解答