网站建设一条龙怎么样经典网络营销案例

bicheng/2026/1/25 5:49:36/文章来源:
网站建设一条龙怎么样,经典网络营销案例,网站seo流程,广告媒体资源平台✨个人主页#xff1a; 熬夜学编程的小林 #x1f497;系列专栏#xff1a; 【C语言详解】 【数据结构详解】 动态内存管理 1、为什么要有动态内存分配 2、malloc和free 2.1、malloc 2.2、free 3、calloc和realloc 3.1、calloc 3.2、realloc 4、常见的动态内存的错… ✨个人主页 熬夜学编程的小林 系列专栏 【C语言详解】 【数据结构详解】 动态内存管理 1、为什么要有动态内存分配 2、malloc和free 2.1、malloc 2.2、free 3、calloc和realloc 3.1、calloc 3.2、realloc 4、常见的动态内存的错误 总结 1、为什么要有动态内存分配 我们已经掌握的内存开辟方式有 int val 20;//在栈空间上开辟四个字节 char arr[10] {0};//在栈空间上开辟10个字节的连续空间 但是上述的开辟空间的方式有两个特点 • 空间开辟大小是固定的。 • 数组在申明的时候必须指定数组的长度数组空间⼀旦确定了大小不能调整 但是对于空间的需求不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知 道那数组的编译时开辟空间的方式就不能满足了。 C语言引入了动态内存开辟让程序员自己可以申请和释放空间就比较灵活了。 2、malloc和free 2.1、malloc C语言提供了⼀个动态内存开辟的函数 void* malloc (size_t size);//size为字节数 这个函数向内存申请一块连续可用的空间并返回指向这块空间的指针。 • 如果开辟成功则返回⼀个指向开辟好空间的指针。 • 如果开辟失败则返回⼀个 NULL 指针因此malloc的返回值⼀定要做检查。 • 返回值的类型是 void* 所以malloc函数并不知道开辟空间的类型具体在使用的时候使用者自己来决定。 • 如果参数 size 为0malloc的行为是标准是未定义的取决于编译器。 2.2、free C语言提供了另外⼀个函数free专门是用来做动态内存的释放和回收的函数原型如下 void free (void* ptr); free函数用来释放动态开辟的内存。 • 如果参数 ptr 指向的空间不是动态开辟的那free函数的行为是未定义的。 • 如果参数 ptr 是NULL指针则函数什么事都不做。 malloc和free都声明在 stdlib.h 头文件中。 举个例子 #include stdio.h #include stdlib.h int main() {int num 0;scanf(%d, num);int arr[num] {0};int* ptr NULL;ptr (int*)malloc(num*sizeof(int));if(NULL ! ptr)//判断ptr指针是否为空 不为空则赋值{int i 0;for(i0; inum; i){*(ptri) 0}}free(ptr);//释放ptr所指向的动态内存ptr NULL;//是否有必要 建议手动置空防止野指针问题return 0; } 指针释放之后是否要手动置空博主的建议是最好手动置空防止出现野指针。 3、calloc和realloc 3.1、calloc C语言还提供了⼀个函数叫 calloc calloc 函数也用来动态内存分配。原型如下 void* calloc (size_t num, size_t size); • 函数的功能是为 num 个大小为 size 的元素开辟⼀块空间并且把空间的每个字节初始化为0。 • 与函数 malloc 的区别只在于 calloc 会在返回地址之前把申请的空间的每个字节初始化为全0。 举个例子 #include stdio.h #include stdlib.h int main() {int *p (int*)calloc(10, sizeof(int));if(NULL ! p){int i 0;for(i0; i10; i){printf(%d , *(pi));}}free(p);p NULL;return 0; } 输出结果 所以如果我们对申请的内存空间的内容要求初始化那么可以很方便的使用calloc函数来完成任务。 3.2、realloc • realloc函数的出现让动态内存管理更加灵活。 • 有时会我们发现过去申请的空间太小了有时候我们又会觉得申请的空间过大了那为了合理的时候内存我们⼀定会对内存的大小做灵活的调整。那 realloc 函数就可以做到对动态开辟内存大小的调整。 函数原型如下 void* realloc (void* ptr, size_t size); • ptr 是要调整的内存地址 • size 调整之后新大小(字节数) • 返回值为调整之后的内存起始位置。 • 这个函数调整原内存空间大小的基础上还会将原来内存中的数据移动到新的空间。 • realloc在调整内存空间的是存在两种情况 ◦ 情况1原有空间之后有足够大的空间 ◦ 情况2原有空间之后没有足够大的空间 情况1 当是情况1 的时候要扩展内存就直接原有内存之后直接追加空间原来空间的数据不发生变化。 情况2 当是情况2 的时候原有空间之后没有足够多的空间时扩展的方法是在堆空间上另找⼀个合适大小的连续空间来使用。这样函数返回的是⼀个新的内存地址。 由于上述的两种情况realloc函数的使用就要注意⼀些 #include stdio.h #include stdlib.h int main() {int* ptr (int*)malloc(100);if (ptr ! NULL){//业务处理}else{return 1;}//扩展容量//代码1 - 直接将realloc的返回值放到ptr中ptr (int*)realloc(ptr, 1000);//这样可以吗(如果申请失败会如何)// realloc可能申请空间失败因此不推荐直接赋值给ptr// 而是创建一个临时指针变量如果确定申请成功再将临时指针变量赋值给ptr即代码2方式//代码2 - 先将realloc函数的返回值放在p中不为NULL在放ptr中int* p NULL;p realloc(ptr, 1000);if (p ! NULL){ptr p;// 推荐使用该方式防止空间申请失败情况}//业务处理free(ptr);return 0; } 总结动态开辟的空间建议不要直接赋值给想要处理数据的指针变量而是先判断再进行赋值。 4、常见的动态内存的错误 1、对NULL指针的解引用操作 void test(){int *p (int *)malloc(INT_MAX/4);*p 20;//如果p的值是NULL就会有问题free(p);} 2、对动态开辟空间的越界访问 void test(){int i 0;int *p (int *)malloc(10*sizeof(int));if(NULL p){exit(EXIT_FAILURE);}for(i0; i10; i){*(pi) i;//当i是10的时候越界访问}free(p);} 3、对非动态开辟内存使用free释放 void test(){int a 10;int *p a;free(p);//ok? free只能释放动态开辟的内存空间} 4、使用free释放一块动态开辟内存的一部分 void test(){int *p (int *)malloc(100);p;free(p);//p不再指向动态内存的起始位置} 5、对同一块动态内存多次释放 void test(){int *p (int *)malloc(100);free(p);free(p);//重复释放} 6、动态开辟内存忘记释放内存泄漏 void test(){int *p (int *)malloc(100);if(NULL ! p){*p 20;}} int main(){test();while(1);} 忘记释放不再使用的动态开辟的空间会造成内存泄漏。 切记动态开辟的空间⼀定要释放并且正确释放。 总结 本篇博客就结束啦谢谢大家的观看如果公主少年们有好的建议可以留言喔谢谢大家啦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/86951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设深圳哪家公司好企业网站seo优化

katalon studio大家都已经不陌生了,是一款现在非常主流的自动化测试工具,包括了web、api、APP,甚至PC应用程序都可以使用它来完成自动化测试。 swagger是一款RESTFUL接口的文档在线自动生成软件,swagger是一个规范和完整的框架&a…

网站建设网页与数据库连接合肥网络推广外包

1,其实自来水石出来的水是干净的,但是在运输到我们家的过程中      是不排除会造成二次污染的,比如管道材料故障,小区二次加压等环节      都可能带来虫卵,铁锈,泥沙等污染物,      2,不光咱们的自来水会有这种情况,很多欧美国家的饮用水,      也都需要自己 再…

乐清柳市网站建设公司网站设计市场价

目录 概述 数据模型 数据结构 元数据注册 读取和写入 设计思想 主要过程

jfinal怎么做网站免费用的云服务器

目录 1、查看日志 2、分析日志、提取重点 3、寻找解决方法 author daisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主 daisy.skye_嵌入式,Linux,Qt-CSDN博客daisy.skye擅长嵌入式,Linux,Qt,等方面的知识https://blog.csdn.net/qq_40715266?typeblog 1、查看日志 由于安…

西宁好的网站建设公司环保设备网站建设方案

网站主要目的是达到企业和客户紧密联系,提升客户对企业形象的认知度的效果,若租用的服务器不稳定,不仅影响网站的运行,对于网站搜索引擎优化以及用户体验等也有很大的影响。下面是服务器出现丢包不稳定的原因,一起来看…

美橙域名查询网站山东互联网公司排名

在Linux系统中,有几种方法可以帮助你判断你的系统是32位还是64位。以下是一些常用的方法: 1. 使用uname命令 打开终端,输入以下命令: uname -m输出结果可能是: x86_64:表示你的系统是64位。i686、i386&…

网站的站点地图怎么做荷塘网站建设

很多同学,都问我:“老师,我的 jmeter 里面,怎么没有 MD5 函数,base64 函数也没有,我是不是用了假的 jmeter?” 哈哈哈,不是的。jmeter 的函数,有自带函数和扩展函数两大…

wordpress怎么上传网站wordpress 字段插件

目录 1.有关二叉树必须知道的几个基本概念 2.有关二叉树的基本操作 2.0有关元素的定义以及要进行的操作 2.1初始化和销毁操作 2.2插入操作以及上调操作 2.2.1插入操作以及上调操作的图解 2.2.2插入操作以及上调操作的代码 2.3删除根元素及其下调操作 2.3.2删除根元素及…

在网站添加邮箱wordpress 原图查看

SQL语句常用方法及步骤 一、sql七步曲1.七步曲2.DVD数据库中的表的设计详情: 二、增三、删四、改五、查六、方法优化1--非查找七、方法优化2--查找总结 一、sql七步曲 1.七步曲 1.手动加载数据库驱动类 2.获得数据库连接对象 3.写sql语句 4.获得执行对象 5.执行命…

做装修工程找什么网站接单wordpress如何转载别人的文章

AMS: Binder: Handler: PMS: starActivity: WMS: 系统启动:

如何能把网站做的更大wordpress首页标题代码

面试 Java 框架八股文五问五答第五期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的! ⭐点赞⭐收藏⭐不迷路!⭐ 1)MyBatis 中 #{} 和 ${} 的区别是什么? #{} 是预编译…

seo做的不好的网站有哪些软文代写是什么

可以打印试卷的软件有哪些?随着科技的飞速发展,越来越多的学习工具如雨后春笋般涌现,其中,能够打印试卷的软件尤其受到广大学生和家长的青睐。这些软件不仅方便快捷,而且内容丰富,可以满足不同学科、不同年…

邯郸网站建设taigew做微信的网站叫什么

关于多源BFS,基本上就是单源BFS的简单升级了一下,比如在queue中队头开始时只有一个,我们通过这一个队头去推导其他的东西。而多源最短路就是队头一开始有1-n个可能的数,一个一个去BFS。 题目思路: 这个题就直接把所有的…

用什么软件上传网站新乡seo顾问

常量符号化 用符号而不是具体的数字来表示程序中的数字 枚举 用枚举而不是定义独立的const int变量 枚举是一种用户定义的数据类型,他用关键词enum以如下语法来声明: enum枚举类型名字{名字0,…,名字n}; 枚举类型名…

做线上网站需要多少钱营销网站制作费用

条件查询语法:select 列名 from 表名 where 列 运算符 值说明:注意关键字where,where后面跟上一个或者多个条件,条件是对前面数据的过滤,只有满足where后面条件的数据才会被返回。下面介绍常见的查询运算符。操作符描述…

网站建设费用 计入什么科目还有做网站的必要吗

在C语言中,链式队列是一种使用链表实现的队列,它具有以下特点: 链式队列不需要预先分配固定大小的存储空间,可以动态地分配内存以适应不同大小的队列。链式队列可以无限扩展,因此不会出现队列满的情况。链式队列的入队…

网站建建设公司和网络自建投资公司设立条件

Spring是当前比较流行的基于Java语言的MVC框架,所谓框架也就是它已经实现好了诸多东西,使java开发人员能把精力尽量放在业务逻辑上.Spring技术的特点是IOC, 即反向注入,主要应用的是XML技术和POJO(简单Java对象),Spring要达到的目的其实很简单,就是尽量简化原来Java中的地层数据…

青岛安装建设股份有限公司网站金融网站模版下载

git 检出远程分支出现Head分离的是什么原因导致的呢?? 因为Head指向了origin的一个commit, 但是这个origin分支你的本地又没有,也就是说你本地没有追踪这个分支,那就要track一下 git checkout -h 看一下有没有追踪的命令 果不其…

东莞专业网站建设公司做微博推广的网站吗

Java 中的注解(Annotation) 一、元注解1.Java 中的元注解 二、Java 中内置的三大注解三、自定义注解1.语法格式 四、反射注解五、注解的作用六、总结 所有的注解类型都继承自 java.lang.annotation.Annotation 接口。注解(Annotation)是一种引用数据类型…