当前位置: 首页 > news >正文

丽江市网站建设_网站建设公司_Photoshop_seo优化

低价网站建设渠道,做兼职有哪些网站,电子商务网站建设首页流程,wordpress省市联动动态内存 #x1f338;栈和堆#x1f338;静态内存的缺陷#x1f338;malloc函数的使用#x1f338;易混淆#xff1a;静态内存与静态变量#x1f338;malloc动态分配内存 #x1f338;栈和堆 栈和堆都是计算机中常用的内存数据结构#xff0c;两者各自的特点和优缺点… 动态内存 栈和堆静态内存的缺陷malloc函数的使用易混淆静态内存与静态变量malloc动态分配内存 栈和堆 栈和堆都是计算机中常用的内存数据结构两者各自的特点和优缺点 数据结构 栈是一种线性结构堆是一种树形结构。 内存分配方式栈是由编译器在需要时分配的、不需要时自动清除的变量存储区。栈的内存分配和释放由系统自动管理不需要程序员手动控制。堆是由程序员手动分配和释放的内存块通常使用malloc()或new操作符来动态分配内存。 存储内容栈中存储的一般是函数参数、函数调用和局部变量等。堆主要用于存储对象实例和数组。 栈的优点分配和释放内存的操作非常高效。 栈的缺点栈的大小有限不能动态扩展。 堆的优点可以动态扩展分配的内存空间较大存储自由。 堆的缺点需要手动进行内存管理如果没有及时释放分配的内存会导致内存泄漏或内存溢出的问题。 静态内存的缺陷 以传统数组为例来简述一下静态内存的缺陷 ①在定义时数组的大小必须是事先知道的。比如int arr[100];,并且在一般情况下为了解决实际问题保证数组的大小足够用可以存储足够的变量我们一般都会将数组的长度定义的足够长。在这样的情况下一般就存在内存浪费的问题。 ②数组存储在栈区。在程序运行期间一个函数中定义的数组只能在该函数运行期间被其他函数调用。函数运行结束后由系统自动释放内存空间。而动态内存空间就不存在这样的问题动态内存空间是由程序员手动分配的内存块。只要程序员不释放该内存空间就算函数运行结束该内存空间也不会被释放。只有当程序运行结束这时系统为该程序分配的所有内存空间都会被释放。 malloc函数的使用 malloc是一个系统函数它是memory allocate的缩写。其中memory是“内存”的意思allocate是“分配”的意思。所以顾名思义malloc函数的功能就是“分配内存”。 malloc函数的原型 void* malloc (size_t size);头文件 #include stdlib.hsize_t是一种整型类型用来记录一个对象或数据类型的大小。通常通过使用sizeof操作符来获取变量或数据类型的大小并将其赋值给size_t类型的变量。size_t类型可以用来对其他size_t类型的变量初始化并且可以将其转换为int类型的值。类似地ptrdiff_t是另一种整型类型用于计算指针之间的元素个数差异 函数功能: 该函数的功能是在内存的动态存储空间即堆中分配一个长度为size的连续空间。 函数的返回值 一个指向所分配内存空间 起始地址 的指针类型为**void ***型。 对于void* void *是一种特殊的指针类型它可以指向任意类型的数据。 与其他指针类型不同我们无需进行强制类型转换就可以将任何类型的指针赋值给void *。 int *p1; void *p2; p2p1;//将p2赋值给p1这不意味无类型指针可以赋值给其他类型的指针。 一般情况下我们都要进行强制转换。 int *p1; void *p2; p1(int*)p2;malloc函数的返回值是一个地址这个地址就是动态分配的内存空间的起始地址。如果此函数未能成功地执行如内存空间不足则返回空指针NULL。 易混淆静态内存与静态变量 静态变量一般是由static关键字修饰。静态变量与全局变量一样都是在静态存储区中存储的。 静态内存静态内存是在栈中分配的比如局部变量。 malloc动态分配内存 如何区分是一个内存是静态内存还是动态内存呢? 我们一般用malloc函数进行区分。动态分配内存都有一个标志即使用malloc函数进行区分。 如何使用malloc函数呢? int *p(int*)malloc(4);它的意思是 请求操作系统分配4个字节的内存空间并返回动态内存的第一个字节的地址。使用强制转换(int*)将malloc函数的返回值强制转换成int *型。将此int 型指针赋值给p。 这里需要注意的是 指针变量p是在静态内存存储的。 指针变量p是用传统的方式定义的所以是静态分配的内存空间。 而指针变量p所指向的内存空间是动态分配的。
http://www.lebaoying.cn/news/105035.html

相关文章:

  • 网站空间怎么弄wordpress实现微信支付
  • 建设银行茂名网站网站建设的落地页
  • 建个网站平台需要多少钱自己网站上做淘宝搜索引擎
  • 淘宝联盟的网站怎么自己做怎么请专业拓客团队
  • 企业网站源码带支付威海高端网站建设
  • 企业网站做百度排名要怎么做关于网站建设的基础知识
  • 企业网站查询系统官网如何搭建自己的网站
  • 在线网站制作模拟没有网站怎么做百度优化
  • 网站管理系统制作小程序code
  • 北京网站的制作设计新网域名官网
  • 钱包钱夹移动网站建设aspcms 网站栏目管理
  • 3小时网站建设平台网页平面设计模板
  • 宝安网站设计最好的公司手机访问网站 自动缩放
  • 环保网站策划书成都装修公司排名哪家好
  • 网站开发建设成本网站模板素材下载
  • 合肥生态丽景网站建设wordpress外贸模板
  • 哈尔滨建站模板大全网站开发工程师特点
  • 公司建设网站费用会计分录免费发布网站seo外链
  • 建设数据库网站需要哪些设备软件详细设计包括哪些内容
  • 网站设计建设案例wordpress 手机菜单栏插件
  • 找人做网站需要先了解哪些要点python新手代码
  • 视频播放网站开发的报告战鼓网h5在线制作
  • 做一个门户网站多少钱免费学校网站管理系统
  • 有没有做网页的兼职网站重庆是哪个省的城市哪个市
  • 网站常用的颜色网站返回500错误页面
  • 为企业规划网站注意什么渗透网站做seo
  • 宝安网站建设制作品牌建设工作方案
  • 区块链网站开发费用抽奖的网站怎么做的
  • 网站备案名字填写lnmp lamp wordpress
  • 如何推广网站最有效问政东营