自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 C语言中常见的动态内存错误

4.使用free释放一块动态开辟内存的一部分。3.对非动态开辟的内存使用free释放。6.动态开辟内存忘记释放(内存泄漏)2.对动态开辟空间的越界访问。5.对同一块动态内存多次释放。1.对空指针的解引用。

2024-03-07 09:01:14 118

原创 C语言中的野指针

1.野指针的概念:指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)。(2)指针的越界访问:当指针指向的范围超出数组arr的范围时,p就是野指针。(3)指针指向空间释放即使置NULL。(4)避免返回局部变量的地址。(5)指针使用之前检查有效性。(3)指针指向的空间释放。

2024-03-05 20:54:54 197

原创 C++基础实现通讯录管理系统

通讯录管理系统是一个高效的信息管理工具,旨在记录和管理用户的亲友信息。该系统能够保存各种联系信息,包括但不限于姓名、性别、年龄、联系电话和家庭住址等。添加联系人,显示联系人,删除联系人,修改联系人,清空联系人, 退出通讯录。C++基础知识进行编程。

2024-03-03 17:50:58 218

原创 猫(Modem)和路由器(Router)有什么区别?

连入Internet后,当PC机向Internet发送信息时,由于电话线传输的是模拟信号,所以必须要用调制解调器来把数字信号“翻译”成模拟信号,才能传送到Internet上,这个过程叫做“调制”。当PC机从Internet获取信息时,由于通过电话线从Internet传来的信息都是模拟信号,所以PC机想要看懂它们,还必须借助调制解调器这个“翻译”,这个过程叫作“解调”。路由器和猫是在我们的日常生活中比较常见的设备,不少人可能认为猫就是路由器,其实猫和路由器有着很大的区别。4.路由器和猫的区别和联系。

2024-02-27 20:34:34 272

原创 C语言实现快速排序

先从序列中选取一个数作为基准(pivot),然后把序列中小于基准的数放在其左边,大于基准的数放在其右边,最后把基准放在它应该在的位置上,此时基准左边的数都比它小,右边的数都比它大。接着分别对左右两边的子序列进行同样的操作,直到整个序列有序为止。重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序;

2023-12-10 20:58:26 53 1

原创 什么是死锁?如何解决死锁问题

引入SPooling技术后,这时会出现第三个进程,叫做输入进程,进程1和进程2都将自己对打印机的请求交给输入进程,输入进程来决定什么时候让进程获取打印机资源,所以对于两个进程来说,自己的请求能够被立即接收并处理,不需要再阻塞等待。例如进程1和进程2,进程1申请并占有了临界资源R1,进程2申请并占有了临界资源R2,之后又提出了新的请求,进程1请求R2,进程2请求R1,各进程会因为申请的进程被对方占有而阻塞,从而发生死锁。循环等待:存在一种进程资源的循环等待链,链中的每个进程所持有的进程在被另一个进程所请求。

2023-12-03 18:17:36 82 1

转载 什么是多线程 如何实现线程安全

进程想要执行任务就需要依赖线程。换句话说,就是进程中的最小执行单位就是线程,并且一个进程中至少有一个线程。什么是多线程?提到多线程这里要说两个概念,就是串行和并行,搞清楚这个,我们才能更好地理解多线程。所谓串行,其实是相对于单条线程来执行多个任务来说的,我们就拿下载文件来举个例子:当我们下载多个文件时,在串行中它是按照一定的顺序去进行下载的,也就是说,必须等下载完A之后才能开始下载B,它们在时间上是不可能发生重叠的。

2023-12-03 15:58:06 56 1

原创 计算机系统中的写命中与写不命中机制

如果数据已经存在于缓存中,这就是一个"命中",CPU可以直接从缓存中获取所需的数据,而不必去内存中读取,这样可以大大提高访问速度。写不命中指的是当CPU试图向缓存中写入数据时,发现该数据并未在缓存中找到,导致需要从内存中读取相应的数据块,并将其载入到缓存中进行写操作。写命中是计算机系统中的一个重要概念,表示CPU向缓存中写入数据时,发现所需的数据已经存在于缓存中,从而直接从缓存中读取数据进行写操作。与之相对应的,写不命中则表示缓存中不存在所需的数据,需要先将数据从内存中读取到缓存中,再进行写操作。

2023-11-20 21:10:58 1141 1

原创 “char *s;scanf(“%s“, s) ”为何报错?如何正确解决?

来源于一道C语言题目,要求利用scanf()函数输入字符串,输出字符串长度。记录在书写代码的过程中遇到的错误和错误的解决方案。

2023-11-04 21:02:14 560 1

原创 操作系统进程调度算法

文章主要介绍常见的调度算法以及其优缺点,调度算法的必要性,调度算法的评价指标。

2023-11-02 21:58:17 155

原创 搞懂C语言中的EOF是什么

接下来执行代码首先进入我们的while循环,先输入字符a,判断这个字符a是否和EOF相等,若不相等,则执行putchar()函数,此时用户输入的字符a存储在缓冲区中,但没有按下Enter键,那么程序即使执行到putchar(),也不会将这个字符打印出来。scanf()拿走自己想要的123456,此时缓冲区还剩下一个\n(回车键),而当运行到getchar()的时候,去检查发现输入缓冲区还存放着\n,即直接拿走,不再等待输入。,而EOF的值的是-1,在文本文件中可以更好的与普通字符区分。

2023-10-21 14:21:02 1795 1

原创 解决github打不开的问题(最新版本亲测有效)

一招顺利解决GitHub打不开,登录不上等问题。亲测有效。

2023-10-15 11:17:49 33162 31

原创 C语言编写三子棋小游戏

以上代码按照上面提示的文件名命名 再复制粘贴 可以直接运行出结果。新建一个test.c文件 主要是实现游戏的逻辑以及测试部分代码。新建一个头文件;头文件主要是对函数的声明。新建game.c源文件,此源文件是对函数具体实现的代码。如有问题 评论区可留言。

2023-10-10 19:27:00 121 2

原创 C---指针的进阶

指向函数指针数组的指针:是指针,指针指向数组,数组的每个元素是函数指针。函数指针数组:是数组,数组用来存放函数指针(即函数的地址)。这是一个返回类型是函数指针的函数声明,该函数的参数是一个。取出的是整个数组的地址,但是只保存第一个元素的地址。第四个函数:是函数指针,比较两个元素所用函数的地址。函数指针的两个参数:待比较的两个元素的地址。第三个函数:待排序数组的每个元素的大小。指针数组:是数组,用来存放指针的。//打印数组的每个元素。类型的指针可以接受任意类型的地址。这是一个函数,函数的第一个参数是。

2023-10-10 19:12:56 98 2

原创 C语言--自定义类型:结构体,枚举,联合

位段开辟空间的时候一次开辟一个字节 先使用低位再使用高位,当前剩下的bit位不能满足下一次使用的需求时,浪费掉,开辟新的空间。如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联合至少得有能力保存最大的那个成员)。如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的下降。而对齐的内存访问仅需要一次访问。

2023-10-10 19:11:01 90 2

原创 C语言动态内存分配函数(malloc,realloc,calloc,free)

本文主要回顾了动态内存存在的必要性,动态内存函数的使用详解,以及常见的动态内存错误。

2023-10-10 19:00:03 247 1

原创 C语言程序的编译:从源代码到可执行程序的过程

编译是将高级语言源代码转换为计算机可执行代码的过程。对于C语言程序员来说,了解C语言程序的编译过程是非常重要的。本篇博客将介绍C语言程序编译的基本步骤和相关概念。我们先来了解两个基本概念。从预处理到可执行文件,每个步骤都有其特定的功能和作用。理解这些步骤将帮助我们更好地调试和优化C语言程序。目标代码:是编译器将源代码转换而成的中间代码,通常以二进制形式表示。源代码:是程序员用C语言编写的文本文件,包含程序的逻辑和功能。

2023-10-10 18:57:57 148 1

原创 C语言中如何对文件进行操作

每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名 字,文件状态及文件当前的位置等)。数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件, 或者输出内容的文件。其实有时候我们会把信息输出到磁盘上,当需要的时候再从磁盘上把数据读取到内存中使用,这里处理的就是磁盘上的文件。在文件读取过程中,不能用feof函数的返回值直接用来判断文件的是否结束。而是应用于当文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束。

2023-10-10 18:56:08 91 1

原创 C语言----指针

指针的相关知识以及注意事项

2023-10-10 11:31:33 99 1

原创 初识mysql

MySQL基本知识点

2023-10-10 11:02:48 90 1

原创 C语言中数据的存储

但是,我们 知道,科学计数法中的E是可以出 现负数的,所以IEEE 754规定,存入内存时E的真实值必须再加上一个中间数,对于8位的E,这个中间数 是127;对于64位的浮点数,最高的1位是符号位S,接着的11位是指数E,剩下的52位为有效数字M。对于32位的浮点数,最高的1位是符号位s,接着的8位是指数E,剩下的23位为有效数字M。一个变量的创建是要在内存中开辟空间的,空间的大小是根据不同的类型而决定的,我们把数据。有符号的:整型提升时是按照变量的补码被截断时的最高位是什么进行补位的,如果。

2023-10-10 10:31:53 81 1

原创 初识C语言

初识C语言。

2023-10-10 10:02:27 96 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除