自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C#的GC垃圾回收(初步了解)

垃圾回收空间分配在讨论垃圾回收之前,需要明白一个重要的事情,空间是怎么被分配出去的。在进程初始化时,CLR会保留一块连续的地址空间(托管堆),托管堆中维护着一个指针,称之为NextObjPtr,它指向下一个对象在堆中的分配位置。当我们在C#中调用new关键字的时候,编译器会自动生成IL指令newobj,该指令将导致CLR执行以下步骤:计算类型(及其所有基类型)的字段,类型对象指针和同步块索引所需要的字节数。检查是否有足够的空间储存,有的话,将对象储存在NextObjPtr指向的空间中,调用类型实例

2022-04-07 21:02:50 1670

原创 内存分配器初步了解

内存分配器初步了解这片文章对于内存分配器的实现总结的非常好,忍不住记录下来,归纳一二。自己动手实现一个malloc内存分配器 1. 我们什么时候知道程序到底需要多少内存:只有当程序运行起来我们才能知道2. 内存分配2个关键问题: (malloc)从堆中找到一块空闲空间返回给申请者 (free)当内存使用完毕后,返回给该区域3. 内存分配器基本实现细节: (1)追踪每块内存的分配状态 (2)该选择怎样的空闲内存块给用户 (3)分配出内存块后,空闲内存剩下的空间该怎么处理 (

2022-03-23 17:25:20 644

原创 CK2源码分析一

CK2源码解析器一当我们玩十字军之王的时候,常常为游戏角色不能做出符合我们心里预期的而苦恼。遂萌生了自己编写mod的想法,但ck2的的mod开发难度宛如回到数十年前用文本编辑器写代码的时代。我们常常只能自己化身人肉编译器,检查代码中的bug。难度与手写代码无异。所以我就萌生了自己开发一款适合ck编辑mod的想法,今天把首款源码露出,欢迎大家一起讨论。CK2的代码都是文本该怎么办?查看CK2的源码的时候我们都能发现,CK2的代码都是由一个个txt组成的,都是字符串。其内容架构与其说是代码,更类似

2022-03-19 12:29:13 769

原创 红点系统最简版

红点系统最简版红点系统是无论任何一款游戏中,都比较重要的模块。常用于提醒玩家还有哪些待做项没有做,以及新系统开放提醒玩家前体验。但由于游戏复杂多变的项目需求,红点系统往往难以很好的适配。所以我学习整理了一款比较简单的红点系统放在这里,全权当作抛砖引玉。结构不管任何系统,都要先确立好结构。接下来所有的业务开发都将围绕着已确立好的结构进行,这样不仅有利于我们建立起清晰的代码逻辑,也方便我们后续排查bug。我们的数据结构是一棵树,由于网上已经有很多这方面的介绍了,所以我也就不在这里解释了。驱动层驱动层

2022-02-09 12:27:29 2755

原创 蓝桥杯——星系炸弹

在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。每个炸弹都可以设定多少天之后爆炸。 比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。 有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。yyyy-mm-ddint day_num(int year, int month, int day){...

2019-09-06 16:02:34 185

原创 排列硬币-二分法-公式法

你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。给定一个数字 n,找出可形成完整阶梯行的总行数。n 是一个非负整数,并且在32位有符号整型的范围内。示例 1:n = 5硬币可排列成以下几行: ¤ ¤ ¤ ¤ ¤解法1:int arrangeCoins(int n) { //时间复杂度为logN int left = 0, right =...

2019-09-03 10:30:37 616

原创 C语言人机猜数问题

C语言人机猜数问题由计算机随机产生一个四位整数,请人猜这四位整数是多少。人输入一个四位数后,计算机首先判断其中有几位猜对了,并且对的数字中有几位位置也正确,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机随机产生的四位数是多少为止。需求:1.一个判断有几个数字正确的函数2.一个判断有几个位置正确的函数3.一个判断输入是否正确的函数...

2019-05-27 15:46:41 803

转载 C语言itoa()函数和atoi()函数详解(整数转字符C实现)

C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。1.int/float to string/array:C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。● itoa():将整型值转换为字符串。● ltoa():将长整型值转换为字符串。● ultoa():将无符号长整型值转换为字...

2019-05-27 11:10:50 181

原创 搬山问题

搬山问题设有n座山,计算机与人作为比赛的双方,轮流搬山。规定每次搬山数不能超过k座,谁搬最后一座淮输。游戏开始时,计算机请人输入山的总数n和每次允许搬山的最大数k,然后请人开始,等人输入了需要搬走的山的数目后,计算机马上打印出它搬多少座山,并提示尚余多少座山。双方轮流搬山直到最后一座山搬完为止。计算机会显示谁是赢家,并问人是否要继续比赛。如果人不想玩了,计算机便会统计出共玩了几局,双方胜负如何...

2019-05-23 20:23:26 233

原创 C语言自动发牌程序

C语言自动发牌程序一副扑克有52张牌,打桥牌时应将牌分给4个人。请设计一个程序完成自动发牌的工作。要求:黑桃用S (Spaces)表示,红桃用H (Hearts)表示,方块用D (Diamonds)表示,梅花用C (Clubs)表示。分析:要设置数组表现扑克牌要设置数组表现玩家要给扑克牌做特定标识,得到结果后玩家要知道自己手中黑桃有哪些、方块有哪些初步想法:设置4个字符数组...

2019-05-17 14:52:29 3740 1

原创 21点常胜将军

21点常胜将军有21根火柴,两人依次取,每次每人只可取走1〜4根,不能多取,也不能不取,谁取到最后一根火柴谁输。请编写一个人机对弈程序,要求人先取,计算机后取;计算机为“常胜将军”。分析:当人先取时,若想计算机常胜,就必须在最后一轮(第i轮)中仅留有一根火柴,因为每个玩家至少取一根。在第i-1轮中就必须只剩下5根,还是因为每个玩家至少取一根,当玩家取一根时,电脑可以取4根,玩家取n(n&l...

2019-05-14 23:12:39 525

原创 C语言24点问题

C语言24点问题在屏幕上输入1〜10范围内的4个整数(可以有重复),对它们进行加、减、乘、除四则运算后(可以任意的加括号限定计算的优先级),寻找计算结果等于24的表达式。例如输入4个整数4、5、6、7,可得到表达式:4*((5-6)+7)=24。这只是一个解,要求输出全部的解。要求表达式中数字的顺序不能改变。解题思路:穷举法分析:1.假设输入A,B,C,D四个未知数,在不考虑括号优先...

2019-05-14 10:52:37 3506 1

原创 int和double类型转化说明

贴出代码,记录新得: int kuang[1][2]; kuang[0][0] = 2; kuang[0][1] = 1; if (double(kuang[0][0]) + double(kuang[0][1]) / 2 == 2.5) printf("OK"); else { printf("NO:%.1f\n", double(kuang[0][0]) + double...

2019-05-12 12:41:20 1531

原创 渔夫分鱼问题

甲、乙、丙三位渔夫出海打鱼,他们随船带了21只箩筐。当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐则是空的,由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将鱼倒出来的前提下,怎样将鱼平分为3份?

2019-05-12 12:36:41 3303

原创 指针与多维数组 01

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-05-10 23:13:06 109

空空如也

空空如也

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

TA关注的人

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