1.   bool在C++里是占用1字节,而BOOL是int类型,int类型的大小是视具体环境而定的;所以来说:false/true只占用1个字节,而TRUE/FALSE视具体环境而言,以下是BOOL在windef.h中的定义:typedef int BOOL;
2. NULL 就是0
   看windef.h中NULL的定义:
#ifndef NULL
#ifdef __cplusplus//这个是指示是用C++来编译程序
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif

解决方案 »

  1.   

    不同的操作系统会使NULL取不同的值。NULL为空,不一定是0。在PC的BC与VC中NULL都取0,但考虑到移植,NULL不应认为是0
      

  2.   

    看看Effective C++的ITEM 7,那里有详解。
    new分配失败的时候应该抛出一个异常,却不一定把指针置为NULL。
      

  3.   

    我是说假如我new了一个对象,这时客户的内存正好不够了(总数够,但都是碎片,于是退出)。会有这种情况吗?