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

电商商城网站建设方案莲都网站建设

电商商城网站建设方案,莲都网站建设,教育 wordpress模板,绍兴网站建设方案报价1、C/C内存分布 【1】栈又叫堆栈 – 非静态局部变量/函数参数/返回值等等#xff0c;栈是向下增长的。 【2】内存映射段 – 是高效的I/O映射方式#xff0c;用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存#xff0c;做进程间通信 【3】堆 – 用于程序运…1、C/C内存分布 【1】栈又叫堆栈 – 非静态局部变量/函数参数/返回值等等栈是向下增长的。 【2】内存映射段 – 是高效的I/O映射方式用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存做进程间通信 【3】堆 – 用于程序运行时动态内存分配堆是可以上增长的。 【4】数据段 – 存储全局数据和静态数据。 【5】代码段 – 可执行的代码/只读常量。 2、C语言中动态内存管理方式malloc/calloc/realloc/free void Test () {int* p1 (int*) malloc(sizeof(int));free(p1);//【1】malloc/calloc/realloc的区别是什么【calloc malloc memset】int* p2 (int*)calloc(4, sizeof (int));int* p3 (int*)realloc(p2, sizeof(int)*10);//【2】这里需要free(p2)吗【不需要】free(p3); }3、C内存管理方式 C语言内存管理方式在C中可以继续使用但有些地方就无能为力而且使用起来比较麻烦因此C又提出了自己的内存管理方式通过 new 和 delete*操作符进行动态内存管理。注意申请和释放单个元素的空间使用 new 和 delete 操作符申请和释放连续的空间使用 new[] 和 delete[]要匹配使用。 int main() {//单个对象int* p1 (int*)malloc(sizeof(int));int* p2 new int; //自动计算大小不需要强转//多个对象int* p3 (int*)malloc(sizeof(int) * 10);int* p4 new int[10];free(p1);free(p3);delete p2;delete[] p4;//额外支持了开空间初始化int* p5 new int(1);int* p6 new int[10] {1, 2, 3};int* p7 new int[10] {};delete p5;delete[] p6;delete[] p7;return 0; }❗注意在申请自定义类型的空间时new 会调用构造函数delete 会调用析构函数而 malloc 与 free 不会 class A { public:A(int a 0): _a(a){cout A(): this endl;}~A(){cout ~A(): this endl;}private:int _a; };struct ListNode {ListNode* _next;int _val;ListNode(int val 0):_val(0), _next(nullptr){} };int main() {//malloc没有办法很好支持动态申请的自定义对象初始化A* p1 (A*)malloc(sizeof(A));//p1-_a 0;//p1-A(1);//自定义类型开空间调用构造函数初始化A* p2 new A;A* p3 new A(3);//自定义类型调用析构函数释放空间delete p2;delete p3;A* p4 new A[10];delete[] p4;A aa1;A aa2;A* p5 new A[10]{ aa1,aa2 }; //有名对象delete[] p5;A* p6 new A[10]{ A(1),A(2) }; //匿名对象delete[] p6;A* p7 new A[10]{ 1,2 }; //隐式类型转换ListNode* n1 new ListNode(1);ListNode* n2 new ListNode(2);ListNode* n3 new ListNode(3);ListNode* n4 new ListNode(4);ListNode* n5 new ListNode(5);n1-_next n2;n2-_next n3;n3-_next n4;n4-_next n5;delete n1;delete n2;delete n3;delete n4;delete n5;return 0; }4、operator new与operator delete 函数 new 和 delete 是用户进行动态内存申请和释放的操作符operator new 和 operator delete 是系统提供的全局函数new 在底层调用 operator new 全局函数来申请空间delete 在底层通过 operator delete 全局函数来释放空间。operator new 实际也是通过 malloc 来申请空间如果 malloc 申请空间成功就直接返回否则执行用户提供的空间不足应对措施如果用户提供该措施就继续申请否则就抛异常。operator delete 最终是通过 free 来释放空间的。 5、new和delete的实现原理 【1】内置类型 如果申请的是内置类型的空间new 和 mallocdelete 和 free 基本类似不同的地方是new/delete 申请和释放的是单个元素的空间new[] 和 delete[] 申请的是连续空间而且 new 在申请空间失败时会抛异常malloc 会返回 NULL 【2】自定义类型 new的原理 1调用 operator new 函数申请空间 2在申请的空间上执行构造函数完成对象的构造delete的原理 1在空间上执行析构函数完成对象中资源的清理工作 2调用 operator delete 函数释放对象的空间new T[N]的原理 1调用 operator new[] 函数在 operator new[] 中实际调用 operator new 函数完成N个对象空间的申请 2在申请的空间上执行N次构造函数delete[]的原理 1在释放的对象空间上执行N次析构函数完成N个对象中资源的清理 2调用 operator delete[] 释放空间实际在 operator delete[] 中调用 operator delete 来释放空间 6、定位new表达式placement-new 定位new表达式是在已分配的原始内存空间中调用构造函数初始化一个对象。使用格式 new (place_address) type 或者 new (place_address) type(initializer-list) 【place_address 必须是一个指针initializer-list 是类型的初始化列表】 #define _CRT_SECURE_NO_WARNINGS 1 #include iostream using namespace std;class A { public:A(int a 0):_a(a){cout A() endl;}~A(){cout ~A() endl;} private:int _a; };int main() {//newA* p1 (A*)operator new(sizeof(A)); //只开空间没初始化//p1-A(2); //error【不能显示调用构造函数】new(p1)A(2); //【定位new可以显式调用构造函数】//deletep1-~A(); //【可以显式调用析构函数】operator delete (p1);return 0; }7、malloc/free和new/delete的区别 malloc/free 和 new/delete 的共同点是都是从堆上申请空间并且需要用户手动释放。不同的地方是用法底层原理 【1】malloc 和 free 是函数new 和 delete 是操作符 【2】malloc 申请的空间不会初始化new 可以初始化 【3】malloc 申请空间时需要手动计算空间大小并传递new 只需在其后跟上空间的类型即可如果是多个对象[]中指定对象个数即可 【4】malloc 的返回值为 void*, 在使用时必须强转new 不需要因为 new 后跟的是空间的类型 【5】malloc 申请空间失败时返回的是 NULL因此使用时必须判空new 不需要但是new 需要捕获异常 【6】申请自定义类型对象时malloc/free 只会开辟空间不会调用构造函数与析构函数而new 在申请空间后会调用构造函数完成对象的初始化delete 在释放空间前会调用析构函数完成空间中资源的清理创造 new/delete 的目的
http://www.pierceye.com/news/793567/

相关文章:

  • 网站策划书编写阿里云部署多个网站
  • 品牌高端网站制作公司佛山新网站建设如何
  • 网站开发中怎么设置快捷键网页设计知名网站
  • 公司网上注册在哪个网站分析网络营销方式
  • 网站用什么颜色外贸企业建站公司
  • 网站下载音乐网站开发公司知乎
  • 什么样式表一般用于大型网站什么是seo搜索
  • 做网站用vue还是用jquery济宁网站建设 中企动力临沂
  • 网站专题教程最吸引人的营销广告词
  • 瑞安网站网站建设如何推广自己的店铺
  • 建设网站花都水泥公司网站建设
  • asp网站怎么下载源码农业做的好的网站
  • 导购网站怎么做视频教学网页设计与制作教程第5版
  • 建设部施工安全管理网站网站建设公司如何
  • 企业商城建站公司网站页面加密
  • 昆山教育云平台网站建设软件工程师考试报名
  • ps做网站大小尺寸大连开发区商场
  • 化妆品网站建设网站右键禁止
  • wordpress 没有样式表网站如何免费做SEO优化
  • 青岛有没有专门做淘宝网站中国建设人才网站
  • 网站移动端是什么问题吗怎样自己做免费的网站
  • 做网站没有做退钱宁波品牌策划公司
  • 网站备案 不关站家乡网页制作模板
  • 成都网站建设企业 排名网络营销推广方案ppt
  • 阳西住房和城乡规划建设局网站微信公众号商城制作
  • 石家庄自助建站软件邯郸做紧固件网站
  • 做川菜的网站动画制作网页
  • 网站建设的英文域名注册需要什么条件
  • wordpress管理系统贵州seo和网络推广
  • 网站第二次备案设计方案审核合格后由谁签字确认