![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言
文章平均质量分 71
c语言专栏
思识己
时间能解释一切
展开
-
【面试】栈、队列增删改查---C语言
栈、队列增删改查一、栈的增删改查1、栈初始化2、栈销毁3、压栈4、弹栈5、返回栈顶的元素6、返回栈内数据个数7、判断栈是否为空二、队列的增删改查一、栈的增删改查#define StackSize 100 //栈大小#define DataType int //栈数据类型typedef struct Stack{ DataType array[StackSize]; int top;}Stack;1、栈初始化/** @funcation: * StackInit:栈原创 2021-08-18 21:57:25 · 734 阅读 · 0 评论 -
写代码常说的堆、栈
写代码常说的堆、栈(一)堆malloc和new的区别:1、申请内存所在位置不同2、返回类型安全性3、内存分配失败时的返回值4、是否需要指定内存大小5、是否调用构造函数/析构函数6、对数组的处理7、new与malloc可不可以相互调用8、是否可以被重载9、能够直观的重新分配内存10、客户处理内存分配不足关于C语言的内存分区(二)栈(一)堆在写程序时用到的malloc、realloc、calloc、new操作都是在申请堆内存,每次使用完后记得释放掉(malloc-free)(new-delete),如果不释原创 2021-08-15 21:16:18 · 292 阅读 · 0 评论 -
【面试】常考链表题-C语言
单链表基本操作基本操作链表初始化插入某个节点删除某个节点查找某个节点修改节点的数据域遍历所有节点链表反转判断链表是否有环删除有序链表重复节点基本操作先定义一个结构体类型#define DataType inttypedef struct LinkList{ DataType Data; //数据域 LinkList * Next; //指针域}LinkList;链表初始化/** @funcation: * Create_LinkList:创建一个链表 * @para原创 2021-08-15 14:57:36 · 243 阅读 · 0 评论 -
根据结构体成员变量的地址得出结构体的首地址(offsetof、container_of)
关于offsetof()、container_of()函数详解一、前言二、offsetof ( )函数详解三、container_of( )函数详解五、一个实例四、总结一、前言最近在看linux驱动时偶然间发现了这两个宏函数offsetof、container_of,刚开始看的时候一头雾水,后来网上找了些资料理解了下大概清楚了它的整个过程,下面我来解析一下#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)#def原创 2021-08-06 15:29:12 · 721 阅读 · 0 评论 -
手写strlen()、strcpy()、strcmp()、strcat()、strstr()、memcpy()
int strlen(const char *str);此函数是传入一个字符串,计算该字符串的长度,’\0’不算入其中。 (sizeof()才会把’\0’算入其中,但是sizeof()的功能是计算传入字符串所占的字节是多少)int strlen(const char *str){ assert(str != NULL); //检查传入的字符串有没有申请空间 int len = 0; //定义字符串长度的计数变量 while((*str++) != '\0')原创 2021-08-02 15:34:03 · 625 阅读 · 0 评论 -
C语言写2048
C语言写20481、ubuntu上的效果2、重要的定义3、左移代码4、设置输入Input无缓冲(ubuntu_base)5、全部代码1、ubuntu上的效果注意:ubuntu上面的函数和win上面的函数可能有些不能兼容如果要在win上面运行该代码需要进行相应改动2048应该有很多同学都玩过,不过是否尝试过自己亲手写一个出来呢2、重要的定义这里的定义很关键这些数组、变量都是程序中很重要的部分,会为后序编写代码带来很多方便之处//此数组是2048的界面char Interface[] =原创 2021-01-11 15:59:29 · 633 阅读 · 0 评论