最近在写网络上的东西,程序经过长时间的运行,会出现崩溃的问题,经过DUMP文件的查看,发现在recv的地方接收返回值的时候,数据的长度异常的大差不多16亿多字节.而查看分配后的char指针显示为错误的指针,这可能是接收数据不对应产生的问题解决思路如下: 1.对返回值长度进行判断 ...
一定要分得清楚C和C 的 空指针常量 不是一样的。C标准不保证NULL等于 ,所以做指针非空判断时,应该用if p NULL 因为 上下文转换到bool值 的统一性,C 就应该用if p 。 首先呢,要明白一点儿,NULL是一个无类型的东西,而且是一个宏。而宏这个东西,从C 诞生开始,就是C 之父嗤之以鼻的东西,他推崇尽量避免宏。而在他的FAQ中,也有相应的一个关于NULL与 的解释,也谈到了这一 ...
2014-08-26 09:48 0 4222 推荐指数:
最近在写网络上的东西,程序经过长时间的运行,会出现崩溃的问题,经过DUMP文件的查看,发现在recv的地方接收返回值的时候,数据的长度异常的大差不多16亿多字节.而查看分配后的char指针显示为错误的指针,这可能是接收数据不对应产生的问题解决思路如下: 1.对返回值长度进行判断 ...
char ch; ifs >> ch ifs.eof() 用来判断文件是否为空,如果为1,那就是空的,思路就是先只读一个字符,然后判断这个字符是不是EOF,如果为空那就是空文件 ...
#include <sys/stat.h> int stat(const char *restrict pathname, struct stat *restrict buf); st ...
网络上有很多讨论C++ 的“引用”与“指针“的区别的文章,谈到区别,其中有一条:“引用不能为空(NULL),引用必须与合法的存储单元关联,指针则可以是NULL)”,但在实际应用中,有时候为了保持一致性,我们会抛开这个规则,人为创造出一个“空引用”。 很多情况下,“空引用”确实可以工作,以致于 ...
代码: 2.结果: f1,f2,f4都会调用成功,f3调用失败。 解释: p为null,所以这个类的this指针为null。调用非静态成员函数时,编译器会默认把this指针作为第一个参数! f1本身为静态成员函数,调用静态成员变量y,不需要this指针,成功。 f2是普通 ...
我们在程序中定义了一个基类,该基类有n个子类,为了方便,我们经常定义一个基类的指针数组,数组中的每一项指向都指向一个子类,那么在程序中我们如何判断这些基类指针是指向哪个子类呢? 本文提供了两种方法 (1) 自定义类id, (2)typeid 一、自定义id 如下所示基类father有两个 ...