07 2023 档案
摘要:```c /* 顺序栈是指利用顺序存储结构实现的栈,即利用一组地址连续的存储单元依次存放 自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序表中的位置。 做法: 以 top=0 表示空栈,另外设指针 base 指示栈底元素在顺序栈中的位置。 当 top 与 base 的值相等时,表示空栈。
阅读全文
摘要:```c #include #include //数据结点 typedef struct binode { int data; struct binode* next;//指向下一个 struct binode* prev;//指向前一个 }BiNode; //头结点 typedef struct
阅读全文
摘要:```c #include #include //创建一个单链表 struct LNode //结点 { int data; //数据 struct LNode* next; //指向下个结点的指针 }; void List_Print(struct LNode* p)//自定义列表打印函数 { w
阅读全文
摘要:今天的c语言学习中遇到了==static关键字==,由于对这个关键字的用法比较模糊,但是这个关键字的作用很大,以下是它的用法: ##一、修饰局部变量 >* (1)用静态关键字static修饰的局部变量,在编译的过程中,会在数据区为该变量开辟空间,并对其进行初始化, > > 如果代码中未对其进行初始化
阅读全文
摘要:今天在学习c语言-结构体中,接触到了==字节对齐==,以下是对它的记录: ##1、什么是字节对齐 > 从内存访问的效率出发, CPU底层或编译器一般会要求 ,所有对象的地址按某种方式对齐. > > 这种对齐,我们称之为"字节对齐" 为了提升内存的访问效率 ? > 一般来说,字节地址就是要求对象的地址
阅读全文
摘要:在学习==共用体(联合体 union)==的时候,碰到了非常经典的大小端模式问题,以下是个人的见解: ##大端模式与小端模式 >所有运算的操作数,必须在CPU的內部寄存器才能参与运算对于CPU来说,寄存器才是它真正的储存空间,但是CPU的寄存器的个数以及容量是非常有限的,所以在设计CPU时,必须要有
阅读全文
摘要:>在今天的动态内存分配的学习中,我遇到了内存泄漏问题,自己开辟的空间,自己找不到了,并且系统也无法使用,通过查找资料 得到了比较加深的见解。 #C语言什么是内存泄漏,怎么避免内存泄漏 ##一、内存溢出 >内存溢出OOM(out of memory),是指程序在申请内存时,没有足够的内存空间给其使用,
阅读全文
摘要:今天在学习中碰见了动态分配内存有关的函数:malloc realloc calloc free。以下是详细的记录 >"动态内存":在程序运行期间,动态分配内存空间,一般是在"堆,heap"空间上分配。 >>malloc: memory allocate 内存分配 realloc: repeat al
阅读全文
摘要:# 一、野指针与空指针要注意 ## (1)野指针 > 野指针是一个指向未知(undefine)的 , 不确定地方的指针. > > "未知的,不确定的" , 指向的地方可能存在,可能不存在. > > 可能可以访问,也可能不可以访问. > 对野指针的访问,会有后果? > > > 可能可以访问,可能不可以
阅读全文
摘要:```//简单排序方法汇总 #include //定义交换数值函数 void Swap(int* a,int* b); //定义输出数组函数 void Print_arr(int a[],int size); //简单插入排序 void Funs_Charu(int a[],int size); /
阅读全文
摘要:``` //计算所活的天数 #include //初始化数组保存天数 int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};//普通年 int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};//闰年 //判断闰年 i
阅读全文