制作微信公众号的网站开发做婚介网站可行性报告
2026/4/20 4:52:16 网站建设 项目流程
制作微信公众号的网站开发,做婚介网站可行性报告,哪些网站百度收录快,做网站工资多少钱一、new 和 malloc 的区别特性new / delete (C)malloc / free (C)语言C 运算符C 标准库函数返回类型返回具体类型指针返回 void*#xff0c;需要强制转换分配大小自动计算类型大小需要手动计算字节数构造函数调用构造函数不调用构造函数析构函数调用析构函数不调用析构函数内存…一、new 和 malloc 的区别特性new / delete (C)malloc / free (C)语言C 运算符C 标准库函数返回类型返回具体类型指针返回void*需要强制转换分配大小自动计算类型大小需要手动计算字节数构造函数调用构造函数不调用构造函数析构函数调用析构函数不调用析构函数内存不足抛出std::bad_alloc异常返回NULL重载可以重载operator new不能重载初始化可以初始化如new int(5)不进行初始化数组支持new[]和delete[]需要手动计算数组大小类型安全类型安全类型不安全使用示例int* p new int(10);int* p (int*)malloc(sizeof(int));释放delete p;/delete[] arr;free(p);二、calloc 和 malloc 的区别特性callocmalloc函数原型void* calloc(size_t num, size_t size);void* malloc(size_t size);参数两个参数元素个数和每个元素大小一个参数总字节数初始化自动初始化为0不初始化内容随机内存计算自动计算总大小num * size需要手动计算总大小性能稍慢因为要初始化稍快不初始化使用场景需要零初始化的数组或结构体不需要初始化或后续会覆盖的情况三、在1G内存的计算机中能否malloc(1.2G)为什么实际安装在计算机中的RAM内存1GB。操作系统为每个进程提供的虚拟地址空间通常很大如32位系统4GB64位系统更大地址空间布局为32位进程的典型地址空间布局4GB ┌─────────────────┐ 0xFFFFFFFF │ 内核空间 │ (1GB或2GB) ├─────────────────┤ │ │ │ 栈(stack) │ ← 向下增长 ├─────────────────┤ │ ... │ ├─────────────────┤ │ 堆(heap) │ ← 向上增长 ├─────────────────┤ │ BSS段(.bss) │ 未初始化全局变量 ├─────────────────┤ │ 数据段(.data) │ 已初始化全局变量 ├─────────────────┤ │ 代码段(.text) │ 程序代码 └─────────────────┘ 0x00000000Linux允许分配超过物理内存交换空间的内存。由于交换空间Swap Space当物理内存不足时操作系统会将一些不常用的物理页面移动到磁盘上的交换空间从而腾出物理内存给需要的页面。当程序再次访问被换出的页面时操作系统会将其从磁盘换入物理内存可能需要换出其他页面。因此1.2G的虚拟内存中只有一部分最近被访问的放在物理内存中其余部分可能放在交换空间中。所以理论上可以分配。# Linux查看交换空间 $ free -h total used free shared buff/cache available Mem: 7.7G 2.3G 3.9G 200M 1.5G 4.9G Swap: 2.0G 0B 2.0G # ← 交换空间 # Windows页面文件 # 在C:\pagefile.sys隐藏系统文件调用malloc(1.2G)可能成功返回非NULL指针但实际使用这些内存时可能会导致系统交换或程序崩溃。真正的限制是虚拟地址空间大小和交换空间大小而不仅仅是物理内存大小。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询