滁州易推,您最值得信赖的滁州网站建设公司
  13687364536     913676469@qq.com      网站地图 
RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-18:30
推荐扫一扫添加微信咨询
微信二维码
关闭右侧工具栏

营销知识

C语言 - 数组动态分配内存
  • 浏览量:
  • 发表时间:2019-05-29 16:09:43
  • 来源:易推网络

传统数组的长度必须提前设置,并且只能是一个常量整数,不能是变量,一旦定义就不能改变长度;它占用的内存不能是手动释放,已知函数运行中函数数组分配的空间在函数运行后被释放;它不能跨函数运行。

所以有一个动态数组。动态数组解决了传统数组的这些缺陷。

例如:

int*p=(int*)malloc(intsize);

上面的语句分配两个内存,一个内存动态分配总大小的字节,另一个是静态的。

malloc函数只有一个int类型参数,表示分配的字节数。malloc函数的作用是请求大小的单词。部分的内存空间,如果成功,它将返回到空间。地址,如果失败,则返回null.malloc函数只能返回第一个字节的地址,因此我们需要将没有任何实际意义的第一个字节的地址转换为有意义的地址。,例如:

int*p=(int*)malloc(100);

表示将不匹配的100字节的第一个字节地址转换为int*类型的地址,这样p指向前四个字节,p+1指向第二个四个字节......依此类推。

动态数组释放内存

freep(p)表示p指向的内存被释放,而p自己的内存是静态的。手动释放,p本身的记忆只能在p变量的功能被锁定时释放。

静态和动态内存比较:

静态内存由系统自动分配;

静态内存按堆栈分配

动态内存由开发人员手动分配并手动释放;

动态内存是堆分配的

本文由滁州易推网络公司提供,公司主要提供全椒网站建设业务,站内文章大部分为原创,部分转载于网络,若转载请标注 /article/17_264.html

上一篇:如何建立电子商务网站
下一篇:Java类和对象