/minip.jpg

技术博客分享

C语言柔性数组深度解析动态内存管理的艺术

柔性数组(Flexible Array Member)是C99标准引入的特性,允许在结构体的最后一个成员声明不指定长度的数组,包含柔性数组成员的结构⽤malloc ()函数进⾏内存的动态分配,并且分配的内存应该⼤于结构的⼤⼩,以适应柔性数组的预期⼤⼩。该特性必须满足以下条件:必须是结构体的唯一一个数组成员必须声明在结构体末尾结构体至少包含一个其他成员// 合法声明int length;// 柔性数组声明// 非法声明(违反最后成员规则)// ❌int id;

Java-数组与-List-浅析

数组是固定长度连续内存空间存储相同类型元素的数据结构。特点长度不可变:创建后无法动态扩容。内存连续:支持快速随机访问(时间复杂度O(1)类型固定:所有元素类型必须一致(支持基本类型和对象类型)。List是 Java 集合框架中的接口,代表有序、可重复的元素集合。核心功能按索引访问元素(动态增删元素(add()remove()迭代遍历(iterator()可通过继承实现自定义的 List 结构(如固定长度列表)。数组:简单、高效,适合固定长度和基本类型操作。List。

面试Java-基础

泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,那样这个类型就可以在使用时决定了。这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。为什么使用泛型保证了类型的安全性在没有泛型之前,从集合中读取到的每一个对象都必须进行类型转换,如果不小心插入了错误的类型对象,在运行时的转换处理就会出错。消除强制转换。

蓝桥杯走迷宫BFS算法

G 的每个格子要么是道路,要么是障碍物(道路用 11表示,障碍物用 0 表示)。已知迷宫的入口位置为 (x1​,y1​),出口位置为 (x2​,y2​)。问从入口走到出口,最少要走多少个格子。接下来输入一个 𝑁×𝑀N×M 的矩阵。若 Gi,j​=1 表示其为道路,否则表示其为障碍物。最后一行输入四个整数 𝑥1,𝑦1,𝑥2,𝑦2表示入口的位置和出口的位置。输入第 11 行包含两个正整数 N,M,分别表示迷宫的大小。输出仅一行,包含一个整数表示答案。若无法从入口到出口,则输出 −1;

Linux多线程单例模式,其他常见的锁,读者写者问题

设计模式就是一些大佬在编写代码的过程中,针对一些经典常见场景,给定对应解决方案,于是将其设计成一种模式,以后我们想使用就只需要套这个模式就好了。某些类,只应该具有一个对象(实例化),称之为单例。在很多服务器开发场景中,经常需要让服务器加载很多数据到内存中,此时往往需要单例的类来管理这些数据。1. 初始化读写锁功能:该函数用于初始化一个读写锁对象rwlock,可以指定属性attr,一般情况下可以传入NULL使用默认属性。参数rwlock:指向读写锁对象的指针,attr:读写锁的属性对象指针,可以为NULL。