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

网站建设需要配置环境么微信做购物网站抽多少佣

网站建设需要配置环境么,微信做购物网站抽多少佣,南京建设教育网站,wordpress 3.8.1 exp 下载这里写目录标题 动态内存分配的原因动态内存函数mallocfreecallocrealloc C/C内存开辟柔性数组柔性数组特点 动态内存分配的原因 常见的内存开辟方式: int a 10;//在栈空间上开辟4个字节 char arr[10] {0};//在栈空间上开辟连续的10个字节上述开辟的空间问题&am…

这里写目录标题

  • 动态内存分配的原因
  • 动态内存函数
    • malloc
    • free
    • calloc
    • realloc
  • C/C++内存开辟
  • 柔性数组
    • 柔性数组特点

动态内存分配的原因

常见的内存开辟方式:

int a = 10;//在栈空间上开辟4个字节
char arr[10] = {0};//在栈空间上开辟连续的10个字节

上述开辟的空间问题:
1.空间开辟大小是固定的。
2. 数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配

但有时需要程序运行时才知道空间大小,所以需要动态内存开辟

动态内存函数

malloc

void* malloc (size_t size);

该函数向内存申请一块连续可用的空间,并返回指向这块空间的指针

  • 如果开辟成功,则返回一个指向开辟好空间的指针
  • 如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查
  • 返回值的类型是 void*,所以malloc函数并不知道开辟空间的类型,具体在使用的时使用者自己来决定
  • 如果参数 size 为0,malloc的行为是标准是未定义的,取决于编译器

free

void free (void* ptr);

free函数用来释放动态开辟的内存

  • 如果参数 ptr 指向的空间不是动态开辟的,那free函数的行为是未定义的
  • 如果参数 ptr是NULL指针,则函数什么事都不做

calloc

void* calloc (size_t num, size_t size);

  • 函数的功能是为 num 个大小为 size 的元素开辟一块空间,并且把空间的每个字节初始化为0
  • 与函数 malloc的区别只在于 calloc会在返回地址之前把申请的空间的每个字节初始化为全0

realloc

void* realloc (void* ptr, size_t size);

realloc函数就可以做到对动态开辟内存大小的调整,size的大小是总的大小,比如已经用malloc开辟了40个字节的空间,size=60,就是开辟40+20个字节的空间

  • ptr是要调整的内存地址
  • size 调整之后新大小
  • 返回值为调整之后的内存起始位置
  • 函数调整原内存空间大小的基础上,还会将原来内存中的数据移动到新的空间
  • realloc在调整内存空间的是存在两种情况:
    • 情况1:原有空间之后有足够大的空间
    • 情况2:原有空间之后没有足够大的空间

在这里插入图片描述
情况1:
当是情况1 的时候,要扩展内存就直接原有内存之后直接追加空间,原来空间的数据不发生变化
情况2:
当是情况2 的时候,原有空间之后没有足够多的空间时,扩展的方法是:在堆空间上另找一个合适大小的连续空间来使用。这样函数返回的是一个新的内存地址

C/C++内存开辟

在这里插入图片描述
C/C++程序内存分配的几个区域:

  • 1.栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返回地址等
  • 2.堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收,分配方式类似于链表
  • 3.数据段(静态区)(static)存放全局变量、静态数据。程序结束后由系统释放
  • 4.代码段:存放函数体(类成员函数和全局函数)的二进制代码。

柔性数组

柔性数组(flexible array):C99 中,结构中的最后一个元素允许是未知大小的数组,这就叫做『柔性数组』成员

typedef struct st_type
{
int i;
int a[0];//柔性数组成员
}type_a;

柔性数组特点

  • 结构中的柔性数组成员前面必须至少一个其他成员
  • sizeof 返回的这种结构大小不包括柔性数组的内存
  • 包含柔性数组成员的结构用malloc(0函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小

柔性数组好处

  • 方便内存释放
  • 有利于访问提升速度
#include <stdio.h>
#include <stdlib.h>struct S
{int n;int arr[0];//柔性数组
};int main()
{printf("%d\n", sizeof(struct S));//4struct S* s = (struct S*)malloc(sizeof(struct S) + 40);//4+40if (s == NULL){perror("s");return 1;}s->n = 100;int i = 0;for (i = 0; i < 10; i++){s->arr[i] = i;}//扩容struct S* ptr = (struct S*)realloc(s, sizeof(struct S) + 40 + 20);if (ptr == NULL){perror("ptr");return 1;}s = ptr;s->n = 15;printf("%d\n", s->n);for (i = 0; i < 15; i++){printf("%d ", s->arr[i]);}//释放free(s);s = NULL;return 0;
}
http://www.yayakq.cn/news/707026/

相关文章:

  • 网站建设的相应技术哪家公司做网站专业
  • 哪里可以上传自己的php网站网站制作公司去哪找客户
  • 上海公司注册网站西安建设工程信息网平台变更
  • 环保网站模板代码wordpress 图片优化
  • 郑州门户网站建设苏州二建建筑集团有限公司
  • 福建省网站备案注销应用商店下载软件
  • 做网站 公司 个体语言网站开发企业
  • 想做个网站怎么做asp网站开发人员招聘
  • 做产品目录设计用什么网站好wordpress设置jetpack失败
  • 唐山如何做百度的网站建设wordpress 安全扫描
  • 国建设银行e路通网站申赚钱软件下载
  • 苏州企业网站建设公司只选亿企邦诸城网站优化
  • 做网站优化的价格徐州市建设局官方网站
  • 网站开发需要什么技能网推怎么推广
  • 建站哪家好联系兴田德润优是是什么网站
  • 龙华住房和建设局网站怎么无法登陆山东济南城乡建设厅网站
  • 小学网站建设教程网站开发是否属于技术合同
  • 中国招标网官方网站石家庄小学网站建设
  • 哪个网站有老外教做蛋糕设计公司名字参考
  • 政务门户网站建设思想wordpress媒体库
  • 手机网站最小宽度南京网站设计公司兴田德润放心
  • 精神文明建设网站专栏做网站怎么这么贵
  • 丹东制作网站公司广告公司简介及制作经验
  • 网站建设前期准备方案c2c交易是什么意思
  • 郑州网站推广流程小米商城的网站建站
  • 做哈尔滨本地门户网站赚钱吗大连外贸网站建设
  • 网站建设过程中要注意沟通网站建设专员 岗位职责
  • 网站制作公司权威乐云践新专家建设网站注意什么
  • 西安哪些做网站的公司怎样做网商网站
  • 阿里国际网站官网入口市场营销策略范文