<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[XNewP的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/XNewP</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; XNewP]]></copyright><item><title><![CDATA[C语言笔记（动态内存经典笔试题分析）]]></title><link>https://blog.youkuaiyun.com/XNewP/article/details/148958131</link><guid>https://blog.youkuaiyun.com/XNewP/article/details/148958131</guid><author>XNewP</author><pubDate>Thu, 17 Jul 2025 00:09:39 +0800</pubDate><description><![CDATA[接着调用GetMemory函数，而在GetMemory函数中程序将“hello,world”赋值给了数组p，然后return p，因为p是数组名（），所以返回的起始地址（假设是0x0012ff40）返回到str中，最后打印str。但是很遗憾，接着GetMemory传参（即将str里的NULL指针传给指针变量p），又利用。因此str指向的空间找不到原来的p，事实上此时str已经是。），然后程序将“hello”拷贝进100个字节的内存里。]]></description><category></category></item><item><title><![CDATA[C语言笔记（动态内存管理）]]></title><link>https://blog.youkuaiyun.com/XNewP/article/details/148893417</link><guid>https://blog.youkuaiyun.com/XNewP/article/details/148893417</guid><author>XNewP</author><pubDate>Fri, 27 Jun 2025 10:24:25 +0800</pubDate><description><![CDATA[这个例子中可以看出当 flag 等于 0 时，系统判定为真，直接return，此时跳过了后续free函数释放内存，等到整个程序结束，这部分内存地址既没有被释放，也找不到这部分内存的地址，因此相当于这部分内存被白白占用，造成内存泄漏，而且这也是。2、有时会我们发现过去申请的空间太小了，有时候我们⼜会觉得申请的空间过大了，那为了合理的使用内存，我们⼀定会对内存的⼤小做灵活的调整。注意：realloc函数在调整内存空间的时候，有可能失败，失败的时候返回的是NULL指针！的元素开辟⼀块空间，并且把空间的每个字节。]]></description><category></category></item><item><title><![CDATA[C语言笔记（自定义类型：联合体与枚举）]]></title><link>https://blog.youkuaiyun.com/XNewP/article/details/148812295</link><guid>https://blog.youkuaiyun.com/XNewP/article/details/148812295</guid><author>XNewP</author><pubDate>Tue, 24 Jun 2025 14:59:22 +0800</pubDate><description><![CDATA[上述的结构其实设计的很简单，用起来也⽅便，但是结构的设计中包含了所有礼品的各种属性，这样使得结构体的⼤小就会偏⼤，比较浪费内存。在这个代码中，char占5个字节，int占4个字节，按理说得到结果是9，但实际上得到的结果是8（如下图），说明和结构体一样存在对齐问题。的例子，⽐如，我们要搞⼀个活动，要上线⼀个礼品兑换单，礼品兑换单中有三种商品：图书、杯⼦、衬衫。的，这样⼀个联合变量的⼤⼩，⾄少是最⼤成员的⼤⼩（因为联合⾄少得有能⼒保存最⼤的那个成员）。的整数倍，所以最接近是4整数倍且大于5的是。]]></description><category></category></item><item><title><![CDATA[C语言笔记（结构体位段）]]></title><link>https://blog.youkuaiyun.com/XNewP/article/details/148783497</link><guid>https://blog.youkuaiyun.com/XNewP/article/details/148783497</guid><author>XNewP</author><pubDate>Sat, 21 Jun 2025 16:46:31 +0800</pubDate><description><![CDATA[再按照位段所占空间来依次从右到左填入数字，例如a为1010，但只占3个比特位即为010；，此时剩余1个比特位无法满足c所占的5个比特位，因此系统向内存重新申请了1个字节（8个比特位）的空间，此时。，进而继续向系统内存再申请一个字节，此时d正好占了其中4个比特位，所以最终打印出来struct S的。（16位机器最⼤16，32位机器最⼤32，写成27，在16位机器会出问题）。2、内存中每个字节分配⼀个地址，⼀个字节内部的bit位是没有地址的。剩c占了新申请内存中6个比特位，还剩余2个比特位。]]></description><category></category></item><item><title><![CDATA[C语言笔记（自定义类型：结构体）]]></title><link>https://blog.youkuaiyun.com/XNewP/article/details/148555012</link><guid>https://blog.youkuaiyun.com/XNewP/article/details/148555012</guid><author>XNewP</author><pubDate>Tue, 10 Jun 2025 19:07:53 +0800</pubDate><description><![CDATA[摘要：本文详细讲解了C语言结构体的声明、初始化及内存对齐规则。通过实例展示了结构体变量的定义与初始化方式（有序和无序），以及结构体自引用（链表节点）的实现。重点剖析了结构体内存对齐机制，包括4条核心规则：首成员偏移0地址、其他成员按对齐数整数倍存放、结构体总大小为最大对齐数整数倍、嵌套结构体需特殊处理。通过S1(12字节)、S2(8字节)、S3(16字节)和嵌套结构体S4(32字节)等实例，具体演示了不同类型成员排列顺序对内存占用大小的影响，解释了编译器自动填充字节的原理。]]></description><category></category></item><item><title><![CDATA[C语言笔记（数据在内存中存储）]]></title><link>https://blog.youkuaiyun.com/XNewP/article/details/147947515</link><guid>https://blog.youkuaiyun.com/XNewP/article/details/147947515</guid><author>XNewP</author><pubDate>Wed, 14 May 2025 21:58:17 +0800</pubDate><description><![CDATA[在计算机内部保存M时，默认这个数的第⼀位总是1，因此可以被舍去，只保存后⾯的xxxxxx部分，从而节省1位有效数字腾出来给M；E+127（E为8位时：float）                E+1023（E为11位时: double）对于32位的浮点数(float)，最⾼的1位存储符号位S，接着的8位存储指数E，剩下的23位存储有效数字 M。对于64位的浮点数(double)，最⾼的1位存储符号位S，接着的11位存储指数E，剩下的52位存储有效数字M。表示符号位，即S=0，V为正数；]]></description><category></category></item></channel></rss>