#include <stdio.h>
#include <stdlib.h>
#include <malloc.h> //包含头文件 main(){
int i = ;//栈中
int arr[];//栈中
int* p = malloc(sizeof(int) * );//p在栈中,malloc在堆里面长度为10个整型,malloc出来的内存是连续的。
*p = ;
*(p+) = ; printf("%#x\n", p);//0x3e3cf0
printf("%d\n", *p);//10
printf("%d\n", *(p+));//20
printf("%d\n", p+);//4078836
printf("%d\n", *(p+));//0
printf("%d\n", *(p+));//0
free(p);
system("pause");
} #include <stdio.h>
#include <stdlib.h> main(){
int i = ;
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 = ; 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 = ; i < count + newCount; i++){
printf("第%d个学生的学号是:%d\n", i, *(p+i));
}
system("pause");
}

android108 内存分配的更多相关文章

  1. 《深入理解Java虚拟机》内存分配策略

    上节学习回顾 1.判断对象存活算法:引用计数法和可行性分析算法 2.垃圾收集算法:标记-清除算法.复制算法.标记-整理算法 3.垃圾收集器: Serial:新生代收集器,采用复制算法,单线程. Par ...

  2. Java的内存分配

    java内存分配 A:栈 存储局部变量 B:堆 存储所有new出来的 C:方法区(方法区的内存中) 类加载时 方法信息保存在一块称为方法区的内存中, 并不随你创建对象而随对象保存于堆中; D:本地方法 ...

  3. C语言内存分配方法。

    当C程序运行在操作系统上时,操作系统会给每一个程序分配一定的栈空间. 堆为所有程序共有的,需要时需要申请访问. 一.栈 局部变量.函数一般在栈空间中. 运行时自动分配&自动回收:栈是自动管理的 ...

  4. JVM内存分配策略

    在 JVM内存垃圾回收方法 中,我们已经详细讨论了内存回收,但是,我们程序中生成的对象是如何进行分配的呢?以下所述针对的是HotSpot虚拟机. 1.Java堆结构 以HotSpot为例,如下图: H ...

  5. Java的垃圾回收和内存分配策略

    本文是<深入理解Java虚拟机 JVM高级特性与最佳实践>的读书笔记 在介绍Java的垃圾回收方法之前,我们先来了解一下Java虚拟机在执行Java程序的过程中把它管理的内存划分为若干个不 ...

  6. Buddy内存分配算法

    Buddy(伙伴的定义): 这里给出伙伴的概念,满足以下三个条件的称为伙伴:1)两个块大小相同:2)两个块地址连续:3)两个块必须是同一个大块中分离出来的: Buddy算法的优缺点: 1)尽管伙伴内存 ...

  7. 小白请教几个关于Java虚拟机内存分配策略的问题

    最近在看周志明所著的<深入理解Java虚拟机>,有几个问题不太明白,希望对虚拟机有研究的哥们儿帮我解答一下.先说一下我进行试验的环境: 操作系统:Mac OS X 10.11.6 EI C ...

  8. Linux内核笔记--内存管理之用户态进程内存分配

    内核版本:linux-2.6.11 Linux在加载一个可执行程序的时候做了种种复杂的工作,内存分配是其中非常重要的一环,作为一个linux程序员必然会想要知道这个过程到底是怎么样的,内核源码会告诉你 ...

  9. Linux内核笔记——内存管理之块内存分配

    内核版本:linux-2.6.11 伙伴系统 伙伴系统是linux用于满足对不同大小块物理内存分配和释放请求的解决方案. 内存管理区 linux将物理内存分成三个内存管理区,分别为ZONE_DMA Z ...

随机推荐

  1. ruby Mixin用法

    module My NA="China" attr:name attr:age def set_name(name) @name=name end def get_name ret ...

  2. html5学习链接

    http://www.runoob.com/tags/html-colorpicker.html

  3. IPv6 tutorial 4 IPv6 address syntax

    https://4sysops.com/archives/ipv6-tutorial-part-4-ipv6-address-syntax/ Now that you know about the n ...

  4. 实验一DOS报告

    实验一.DOS命令解释程序的编写实验 13物联网  李名贵  201306104123 一.        实验目的 (1)认识DOS: (2)掌握命令解释程序的原理: (3)掌握简单的DOS调用方法 ...

  5. poj2229Sumsets

    http://poj.org/problem?id=2229 挺好的一公式.. #include <iostream> #include<cstdio> #include< ...

  6. 通过 Azure 媒体管理门户开始使用直播流媒体

    Jason Suess Azure媒体服务首席项目经理 几个月前,我们宣布发布 Azure媒体服务直播服务的公共预览版.其实这些直播服务早已被美国国家广播公司体育台用于多项重大体育赛事的多平台直播 ...

  7. 两种应该掌握的排序方法--------1.shell Sort

    先了解下什么都有什么排序算法 https://en.wikipedia.org/wiki/Sorting_algorithm http://zh.wikipedia.org/zh/%E6%8E%92% ...

  8. udhcpc和udhcpd移植

    实现DHCP自动获取IP地址 前提:系统已经实现DNS(即使用ping www.baidu.com测试时能ping通). 1.  在内核中添加以下选项: Networking  ---> [*] ...

  9. WFS

    Web 要素服务(WFS) 1定义 支持对地理要素的插入,更新,删除,检索和发现服务.该服务根据HTTP客户请求返回GML(Geography Markup Language.地理标识语言)数据. W ...

  10. Class.forName()数据库驱动

    在学习jdbc中,用到Class.forName(驱动);,当时学习的时候知道Class.forName就是加载一个类到虚拟机,在加载一个类的时候,这个类的信息会被放到一个方法区,一个CLass 在J ...