首页 > 其他分享 >关于CStringList的剖析

关于CStringList的剖析

时间:2024-06-20 17:33:00浏览次数:12  
标签:CPlex 节点 剖析 内存 CStringList PTR CNode 关于

CStringList是一个双向链表。它的内存管理依赖于CPlex结构。
` __declspec(align(8)) struct CPlex
{
CPlex* pNext;
// BYTE data[maxNum*elementSize];

void* data() { return this+1; }

static CPlex* PASCAL Create(CPlex*& head, UINT_PTR nMax, UINT_PTR cbElement);
		// like 'calloc' but no zero fill
		// may throw memory exceptions
void FreeDataChain();       // free this one and links

};
CPlex是一块内存块,除去保存下一个内存块的pNext所占用的内存,它最多能容纳m个sizeof(CNode)的空间。m由CStringList的构造函数传入,默认为10.m_pBlocks指向第一个内存块,之后的内存块都已有元素。
class CStringList
{
CNode* m_pNodeHead; //头节点,指向第一个元素
CNode* m_pNodeTail;//尾节点,指向最后一个元素
INT_PTR m_nCount; //元素个数,节点个数
CNode* m_pNodeFree;//第一个空闲节点(节点被分配空间,但没有赋值)
struct CPlex* m_pBlocks;//第一个内存块
INT_PTR m_nBlockSize;//每个内存块能存储m_nBlockSize*sizeof(CNode)+sizeof(CPlex)
}; `

标签:CPlex,节点,剖析,内存,CStringList,PTR,CNode,关于
From: https://www.cnblogs.com/dxy-blog/p/18258928

相关文章

  • 关于伴随矩阵/矩阵初等变换/动态矩阵求逆的一些想法
    起因是某道BEST定理题需要求出矩阵修改一个位置后所有主对角线上的(代数)余子式。也就是求出删除\(i\)行\(i\)列后的伴随矩阵。而伴随矩阵可以用逆矩阵计算,问题又变成了删除一行一列再加入一行一列的矩阵求逆。(因为Laplace矩阵不满秩而所有的主子式满秩,所以你不能求出原矩阵......
  • 剖析 Kafka 消息丢失的原因
    目录前言一、生产者导致消息丢失的场景场景1:消息体太大解决方案:1、减少生产者发送消息体体积2、调整参数max.request.size场景2:异步发送机制解决方案:1、使用带回调函数的发送方法场景3:网络问题和配置不当解决方案:1、设置acks参数设置为"all"2、设置重试参数3、设置min.insync.......
  • 关于zip、map、filter和lambda函数
    zip#相当于是拉链,将两个列表对应位置的数据拉到一起,变成元组,最后返回一个迭代器。用list将迭代器转换为列表即可看到内容#如果列表数据长度不对等,就以短的为主,剩下的不管了list1=[1,2,3]list2=['a','b','c','d']z=zip(list1,list2)print(list(z))#>>>>输......
  • 关于后端幂等性问题分析与总结
    后端幂等性(Idempotency)是指对系统执行一次操作或多次执行相同的操作,其结果始终如一。在分布式系统和API设计中,这是一个关键概念,因为它能保证用户无论请求被路由到哪个节点,多次执行相同的请求都不会导致副作用的累积,从而提升系统的可靠性和一致性。问题分析与总结:定义:检查一......
  • 窥探Mybatis配置到执行源码剖析
    mybatis自动配置过程首先我们项目中使用mybatis如果是mybatis的话会引入依赖<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</ve......
  • 关于excel表格的一些相关公式及函数
    Excel中的公式和函数是进行数据处理和分析的核心。以下是一些常用的Excel公式和函数,它们在各种场景中有广泛的应用:1.**文本处理函数**  -`LEN(text)`:返回文本字符串中的字符数。  -`TEXT(value,[format])`:将数值转换为指定格式的文本。  -`TRIM(text)`:......
  • 关于数据库的一些常用操作
    数据定义语言(DDL)DDL主要用于创建、修改和删除数据库中的对象,如数据库、表、视图等。创建数据库sql复制代码CREATEDATABASE数据库名;选择数据库sql复制代码USE数据库名;创建表sql复制代码CREATETABLE表名(列名1数据类型1,列名2数据类型2,......
  • 单细胞测序最好的教程(十六):关于RNA速率你想知道的都在这
    作者按本章节详细讲解了基于RNA速率的三种拟时序模型,包括稳态模型,EM模型和深度学习模型,并对比了不同模型的适用场景与计算特点。本教程首发于单细胞最好的中文教程,未经授权许可,禁止转载。全文字数|预计阅读时间:5000|10min——Starlitnightly(星夜)5.2RNA速率1.背景单细......
  • 目标检测——SCUT-HEAD:大规模人头检测数据集的深度剖析
    引言亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。在当今科技飞速发展的时代,计算机视觉技术正以惊人的速度改变着我们的生活。......
  • 关于面试被面试官暴怼:“几年研究生白读” 的前因后果
      中午一个网友来信说自己和面试官干起来了,看完他的描述真是苦笑不得,这年头是怎么了,最近互联网CS消息满天飞,怎么连面试官都SB起来了呢?  大概是这样的:这位网友面试时被问及了Serializable接口的底层实现原理,因为这是一个标识性的空接口,大部分同学在学习时都秉持着会用就行......