又遇到访问内存越界错误

大概的情况类似这样

class  A
{
    DWORD dary[MAX_TYPE]; 
// MAX_TYPE 是已定义常数
public :
    A()
    {
        dary[TYPE1] 
=   1 ;    // TYPE1 在其他头文件定义, 关键是TYPE1 > MAX_TYPE, SO 越界了
        dary[TYPE2]  =   2 ;   // TYPE2 > MAX_TYPE
    }


class  B
{
    
int  b;
public :
    B()
    {
        b 
=   0 ;
    }
}


void  Init()
{
    A 
* pa;
    B 
* pb;

    pa 
=   new  A;  // 虽然构造函数中数组下标越界,但是运行时很“安静”,没有报错

    pb  =   new  B;  // 运行时提示分配内存错误,刚开始不解,后来才发现是class A中访问内存越界,new B; 的时候用到了越界的内存,所以报错

}
/
 void foo(){  CString str= "49a40939-5032-4653-bc54-511354b89f39"; }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值