自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (1)
  • 收藏
  • 关注

原创 【C语言】顺序表的动态存储:增删改查的实现

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。使用定长数组存储的是静态顺序表,使用动态开辟的数组存储的是动态顺序表。以下是动态顺序表增删改查功能的实现://seqlist.h#pragma once#include <stdio.h>#include<assert.h>#include <stdlib.h>typedef int SLDatatype;typedef struct Seq

2021-04-29 21:14:33 869 7

原创 【C语言】常用字符串函数和内存函数的实现

strlen函数 常用于计算字符串中的字符个数//my_strlen的实现int my_strlen(const char*str){ assert(str != null); int len = 0; while (*str != '\0'){ ++len; ++str; } return len;}int main(){ //char*p1 = "hello world"; //两种字符串赋值方式 //printf("%d\n", strlen(p1)); c.

2021-04-20 14:46:18 492 8

原创 【C语言】数组指针、函数指针、函数指针数组

数组指针与指针数组的概念很容易混淆,数组指针本质上就是一个指针,它所指向的内容是一个数组,例如int (*p)[5]={0};就是一个数组指针,其中p的类型为int (*)[5],而指针数组本质上是一个数组,如int * arr[5]={0};是一个数组,数组里面每一个元素都是一个指针。例如:int a[10]={1,2,3,4};int(*p)[10]=&a; //数组指针函数指针,定义一个指针变量来存放函数地址,这个指针变量就叫作函数指针。例如:void test(){print

2021-04-15 18:45:30 514 8

原创 【Linux】守护进程/精灵进程的创建

守护进程也称精灵进程(Daemon),是运行在后台的一种特殊进程。守护进程独立于控制终端,它们常常跟随系统启动时启动,在系统关闭时才结束。守护进程周期性的执行某些任务或者等待处理某些事件,Linux上的大多数服务器都是用守护进程实现的。在系统启动中默认的守护进程的父进程ID全都是init,守护进程特征就是在程序运行名后加了一个d,但不是所有的尾字母是d的进程都是守护进程。要创建一个守护进程,我们需要:1.调用umask()函数,将文件模式创建屏蔽字设置为0 umask(0); //用uma

2021-04-12 21:36:59 3235 12

原创 【Linux】Socket套接字编程基础

socket编程是网络通信程序的编写,涉及到应用层以下各层协议的选择。在传输层中我们主要了解TCP、UDP两种协议:TCP:传输控制协议,面向连接,面向字节流,是一种可靠的传输通信协议,安全性较高,常用于文件的传输。UDP:用户数据报协议,无连接,面向数据报,是一种不可靠的传输通信协议,实时速度高,常用于视频/音频的数据传输。想使用套接字socket接口来进行UDP网络通信程序的编写,首先要了解C/S(客户端/服务端)架构,客户端是主动发起请求的一方,服务端是被动接受请求的一方。服务端实现的流程:

2021-04-07 22:55:10 1425 5

原创 【C语言】递归:汉诺塔问题和青蛙跳台阶问题

递归就是一个函数执行过程中调用自己,在c语言中有很多关于递归的经典问题,例如:斐波那契数列问题、汉诺塔问题等,在研究递归问题时我们要注意三点:1.递归的结束条件2.递归在每次进行过程中,都得离条件越来越近3.相邻两次递归调用之间的关联关系汉诺塔问题:有三根杆子A, B, C。A杆上有N个(N > 1)穿孔圆盘, 盘的尺寸由下到上依次变小.要求按下列规则将所有圆盘移至C杆:1.每次只能移动一个圆盘;2.大盘不能叠在小盘上面,可将圆盘临时置于B杆, 也可将从A杆移出的圆盘重新移回A杆, 但都

2021-04-06 19:45:11 1203 9

原创 【C++】自旋锁、读写锁、可重入锁与不可重入锁的简单理解

自旋锁(spinlock):当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。获取锁的线程一直处于活跃状态,但是并没有执行任何有效的任务,使用这种锁会造成忙等busy-waiting,消耗CPU资源。在之前的博客中,我们了解过互斥锁,互斥锁实际上是一种sleep-waiting的锁,当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将被阻塞放入等待队列,不会造成忙等现象,CPU可以去处理其他任务,不会浪费C

2021-04-01 22:52:44 2611 7

vld-10检查内存泄漏工具

vld-10检查内存泄漏工具

2021-03-19

空空如也

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

TA关注的人

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