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

一个网站同时做竞价和seo新人做外贸哪个平台好做

一个网站同时做竞价和seo,新人做外贸哪个平台好做,广东省建设工程造价管理协会网站,app好做吗文章目录 前言1.malloc2.free3.calloc4.realloc5.动态内存常见错误6.动态内存经典笔试题分析7.柔性数组8.C/C中的内存区域划分 前言 文章的标题是动态内存管理#xff0c;那什么是动态内存管理#xff1f;为什么有动态内存管理呢#xff1f; 回顾一下以前学的知识#xff… 文章目录 前言1.malloc2.free3.calloc4.realloc5.动态内存常见错误6.动态内存经典笔试题分析7.柔性数组8.C/C中的内存区域划分 前言 文章的标题是动态内存管理那什么是动态内存管理为什么有动态内存管理呢 回顾一下以前学的知识我们已经掌握的开辟内存的方式有以下几种 char ch a; int val 10; float f_val 12.8f; int arr[20] { 0 }; //....上述开辟内存的方式有几个弊端 开辟空间的大小是固定的数组在声明的时候必须指定数组的长度数组空间⼀旦确定了大小就不能调整了 但是对于空间的需求不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道那数组在编译时就开辟空间的方式就不能满⾜了。 C语言引⼊了动态内存开辟让程序员自己可以申请和释放空间就比较灵活了。 1.malloc 这个函数的功能是向内存申请一块连续的内存空间然后返回一个指向该空间的起始地址的指针。 如果空间开辟成功则返回一个指向该空间起始地址的指针。如果空间开辟失败则返回一个NULL指针。因此函数的返回值需要做检查开辟的空间不会被初始化。返回值的类型是void*所以该函数并不知道所开辟空间的类型需要空间的使用者自己决定。当该函数的参数是0是返回值是未定义的取决于编译器。头文件stdlib.h 使用malloc函数申请40个字节的空间 当函数的参数是0时vs2019中是随机值 既然空间是程序员申请的那么最后由谁释放呢 程序员自己释放。程序结束操作系统回收 下面就来介绍如何释放 2.free C语言提供了另外⼀个函数free专⻔是⽤来做动态内存的释放和回收的函数原型如下 该函数用来释放由malloc、calloc、realloc申请的空间的如果参数 ptr 指向的空间不是动态开辟的那free函数的行为是未定义的。如果参数 ptr 是NULL指针则函数什么事都不做。该函数不会改变指针ptr的值因此为了避免野指针的出现要将其及时置为NULL。 3.calloc 该函数的功能跟malloc差不多区别在于 该函数的参数有两个一个是有几个元素一个是每个元素的大小。该函数会将申请的空间初始化为全0。 4.realloc realloc函数的出现让动态内存管理更加灵活。 有时会我们发现过去申请的空间太小了有时候我们⼜会觉得申请的空间过⼤了那为了合理的使用内存我们⼀定会对内存的大小做灵活的调整。那 realloc 函数就可以做到对动态开辟内存大小的调整。 ptr 是要调整的内存地址size 调整之后新大小返回值为调整之后的内存起始位置。这个函数调整原内存空间大小的基础上还会将原来内存中的数据移动到新的空间。realloc在调整内存空间的是存在两种情况 情况1原有空间之后有足够大的空间情况2原有空间之后没有足够大的空间 情况1 当是情况1 的时候要扩展内存就直接原有内存之后直接追加空间原来空间的数据不发生变化。情况2 当是情况2的时候原有空间之后没有⾜够多的空间时扩展的⽅法是在堆空间上另找⼀个合适⼤⼩连续空间来使⽤。这样函数返回的是⼀个新的内存地址。 既然该函数有两种特殊情况那我们在使用时也应该更加注意 下面的代码有没有问题呢 int main() {//1. 先申请一部分空间int* p (int*)malloc(20);if (NULL p){perror(malloc);return 1;}//2.扩容空间p (int*)realloc(p, 40);if (NULL p){perror(realloc);return 1;}//3.使用//.......free(p);p NULL;return 0; }假如realloc开辟空间失败了那么它会返回一个空指针p就是空指针了。 好家伙没给我扩容成功我以前的数据也没了真可以 所以在接收realloc的返回值时我们应该使用你一个临时变量接收判断临时变量是不是空指针然后再对p进行操作。 所以应该这样写 #includestdlib.hint main() {//1. 先申请一部分空间int* p (int*)malloc(20);if (NULL p){perror(malloc);return 1;}//2.扩容空间int* tmp NULL;tmp (int*)realloc(p, 40);//先判断realloc的返回值if (tmp ! NULL){p tmp;tmp NULL;}//3.使用//....free(p);p NULL;return 0; }5.动态内存常见错误 对NULL指针的解引用操作对动态开辟空间的越界访问对非动态开辟内存使用free释放 使用free释放⼀块动态开辟内存的⼀部分 对同⼀块动态内存多次释放 动态开辟内存忘记释放内存泄漏 6.动态内存经典笔试题分析 题目一 void GetMemory(char* p) {p (char*)malloc(100); } void Test(void) {char* str NULL;GetMemory(str);strcpy(str, hello world);printf(str); }此处是值传递并不会为str真正开辟空间str还是NULL。 题目二 char* GetMemory(void) {char p[] hello world;return p; } void Test(void) {char* str NULL;str GetMemory();printf(str); }p变量生命周期为GetMemory函数内函数结束变量销毁。使用一个已经被销毁的变量的地址结果是不可预测的 3.题目三 void Test(void) {char* str (char*)malloc(100);strcpy(str, hello);free(str);if (str ! NULL){strcpy(str, world);printf(str);} }str指向的空间被释放那么str就是野指针了但是str还是指向那块内存空间向str中拷贝world,那就是非法访问了。 7.柔性数组 什么是柔性数组 也许你从来没有听说过柔性数组flexible array这个概念但是它确实是存在的。C99 中结构中的最后⼀个元素允许是未知大小的数组这就叫做『柔性数组』成员。 struct s {int i;char ch;int a[]; //int a[0] };其中a就是一个柔性数组。 柔性数组的特点 结构中的柔性数组成员前⾯ 必须⾄少⼀个其他成员。sizeof 返回的这种结构大小不包括柔性数组的内存。包含柔性数组成员的结构体用malloc ()函数进行内存的动态分配并且分配的内存应该大于结构体的大小以适应柔性数组的预期大小。 柔性数组的使用 如果我们不使用柔性数组那么如何实现上述代码呢 虽然不适用柔性数组也能达到目的但使用柔性数组有两个好处 方便内存的释放 如果我们的代码是在⼀个给别⼈⽤的函数中你在⾥⾯做了⼆次内存分配并把整个结构体返回给⽤⼾。⽤⼾调⽤free可以释放结构体但是⽤⼾并不知道这个结构体内的成员也需要free所以你不能指望⽤⼾来发现这个事。所以如果我们把结构体的内存以及其成员要的内存⼀次性分配好了并返回给⽤⼾⼀个结构体指针⽤⼾做⼀次free就可以把所有的内存也给释放掉。 有利于访问速度 连续的内存有益于提⾼访问速度也有益于减少内存碎⽚。 8.C/C中的内存区域划分 栈区 栈区stack在执⾏函数时函数内局部变量的存储单元都可以在栈上创建函数执⾏结束时这些存储单元⾃动被释放。栈内存分配运算内置于处理器的指令集中效率很⾼但是分配的内存容量有限。栈区主要存放运⾏函数⽽分配的局部变量、函数参数、返回数据、返回地址等。 堆区 堆区heap⼀般由程序员分配释放若程序员不释放程序结束时可能由OS回收。分配⽅方式似于链表。 静态区 数据段静态区存放全局变量、static修饰的变量。程序结束后由系统释放。 代码段 代码段存放函数体类成员函数和全局函数的⼆进制代码。 本次的分享就到这里啦如有错误请纠正。
http://wiki.neutronadmin.com/news/256495/

相关文章:

  • 360浏览器怎么拦截网站建设网站的协议
  • 中建铁路建设有限公司网站wordpress版本回退
  • 奉贤做网站创建网站的各项费用
  • 网站建设三站合一简述网站建设优劣的评价标准
  • 网站首页关键词设置网站设计师待遇
  • 布吉网站建设公司柳州网站建设多少钱
  • 网站后台代码如何做宁波网站建设佳选蓉胜网络好
  • 做网站搞活动网站设计的概述
  • 长春电商网站建设公司电话企业推广是什么职业
  • 帮助做APP的网站公司网上购物软件
  • 小说下载网站哪个好简述企业网站建设的主要步骤
  • 网站项目有需要什么技术支持河北新河网
  • 营商环境建设网站汕头网站推广教程
  • 风烛源网站管理系统网页设计与制作实训报告800字
  • 慕课网电子商务网站开发南阳高质量建设大城市网站
  • 怎么评价网站的好坏支持手机网站的空间
  • 网站转出在线设计平台招募设计师
  • 圣弓 网站建设北京三里屯
  • 东莞网站推广优化网站境外网站网站有哪些
  • 深圳企业网站建设专业芜湖集团网站建设
  • 做网站用什么ui美观手机制作视频软件app
  • 动易网站官网网络营销推广策划方案
  • 上海网站设计建设公司模板网站也需要服务器吗
  • 网站开发与实现文献综述wordpress添加缩略图
  • 凡科网建网站付费链接怎么做网站视频主持
  • ps可以在哪个网站上做兼职环保公司网站模板
  • 沈阳网站开发集团互联网营销推广公司
  • 手机网站开发环境搭建如何让百度口碑收录自己的网站
  • 大连建网站公司企业门户网站建设教程
  • 学校网站制作模板购物网站建设与实现