C/C++
周綝
软件行业中的奋青!
展开
-
查找内存泄漏的方式
(原创不易,如需转载,请注明出处)所有的内存泄漏,就是一个原因,分配内存后没有释放。智能指针是通过在某些结构体(类)中增加一个计数模块,如果有引用,计数模块加一,如果某个地方释放引用,那么计数模块就减一,直到计数为零,智能指针能自动释放内存。那么,如果没有智能指针模块,那么为了防止内存泄漏,一定要规范内存分配与释放的原则。我的个人原则就是谁申请,谁释放。在同一个函数内申请和释放。当然,在实际情况中,必然会出现这边申请,但是不能马上释放的情况,比如对某些数据在程序启动的时候需要初始化,那就讲究一个原创 2020-09-07 15:00:03 · 358 阅读 · 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 · 287 阅读 · 0 评论 -
C语言实现链表的标准化操作
假如你的C语言程序里面有很多链表,那么对链表的操作还是每个数据结构对应一组函数吗?这就显得你的代码不够高级了,以下是对双向环状链表操作,实现方法仅仅写了两个,完全可以用你智慧的大脑,续写!Link.h#ifndef _LINK_H_#define _LINK_H_#define POINT_TEST(STRUCT_TYPE) \STRUCT_TYPE *prve; \STRUCT_TYPE *next; \#ifdef __cplusplusextern "C"{#endif原创 2020-05-19 15:25:43 · 429 阅读 · 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 · 343 阅读 · 0 评论