C/C++
周綝
软件行业中的奋青!
展开
-
查找内存泄漏的方式
(原创不易,如需转载,请注明出处) 所有的内存泄漏,就是一个原因,分配内存后没有释放。 智能指针是通过在某些结构体(类)中增加一个计数模块,如果有引用,计数模块加一,如果某个地方释放引用,那么计数模块就减一,直到计数为零,智能指针能自动释放内存。 那么,如果没有智能指针模块,那么为了防止内存泄漏,一定要规范内存分配与释放的原则。我的个人原则就是谁申请,谁释放。在同一个函数内申请和释放。当然,在实际情况中,必然会出现这边申请,但是不能马上释放的情况,比如对某些数据在程序启动的时候需要初始化,那就讲究一个原创 2020-09-07 15:00:03 · 355 阅读 · 0 评论 -
指针与长度
在C语言中,经常要为数据分配一段连续的空间,用于保存一段相同数据类型的数据。这时候为了防止访问越界,常常需要跟一个数值,指配长度。于是我写了一段如下的代码 #ifndef _STRUCT_ARR_H_ #define _STRUCT_ARR_H_ #include <stdio.h> #include <stdlib.h> #define STRUCT_ARR(type) \ unsigned int nSize; \ type* pData; typedef str原创 2020-08-31 16:09:38 · 283 阅读 · 0 评论 -
C语言实现链表的标准化操作
假如你的C语言程序里面有很多链表,那么对链表的操作还是每个数据结构对应一组函数吗?这就显得你的代码不够高级了,以下是对双向环状链表操作,实现方法仅仅写了两个,完全可以用你智慧的大脑,续写! Link.h #ifndef _LINK_H_ #define _LINK_H_ #define POINT_TEST(STRUCT_TYPE) \ STRUCT_TYPE *prve; \ STRUCT_TYPE *next; \ #ifdef __cplusplus extern "C" { #endif原创 2020-05-19 15:25:43 · 423 阅读 · 0 评论 -
C语言实现面向对象的一种方式
从某天开始,我认为面向对象只是一种思想,至于用什么语言实现,怎么实现,其实就看语言的开发者怎么去思考这种问题。以下代码是我用纯C语言实现面向对象的一种方式。C语言实现面向对象从应用级开发来讲,纯粹是个鸡肋,所以勿喷!这里只是提供一个思考问题的方向而已! 先来一个父类的头文件 Father.h #ifndef _FATHER_H_ #define _FATHER_H_ typedef int(*PrintInfo)(); #define CLASS_BASE() \ int nValue;原创 2020-05-19 15:01:17 · 340 阅读 · 0 评论