bug ?解决办法
bug ???
x.cpp
fn()
....
fn()
bool b = true;
DWORD *a = NULL; //如果去掉这句,或变成局部变量就没有问题
fn()....
否则就出现 "crt not initialized",这个错误
这个是BUG?
有时候想变量的生命周期长一点,又不想使用new.
------解决思路----------------------
类的声明里不允许对类成员进行初始化,new只是开辟存储空间在堆上而已
------解决思路----------------------
你的是指针,能不用 new 吗
------解决思路----------------------
我怎么有点儿蒙圈了呢
变量的生命周期跟new没有任何关系啊!比如全局变量DWORD g_dbA,在程序的生命周期内它都存在;再比如一个函数内部的局部 DWORD *dbA = new DWORD,函数执行完之后立马delete掉,那它的生命周期就仅仅在函数执行过程中....
你的DWORD *a = NULL,报 "crt not initialized"运行错误,明显是没有new出来就使用造成的。指针你不new出来当然是不能够对其操作的(如取值、赋值等),除非这个指针指向一个已存在的对象
------解决思路----------------------
贴上代码,单步调试,看出错的具体是哪一句
x.cpp
fn()
....
fn()
bool b = true;
DWORD *a = NULL; //如果去掉这句,或变成局部变量就没有问题
fn()....
否则就出现 "crt not initialized",这个错误
这个是BUG?
有时候想变量的生命周期长一点,又不想使用new.
------解决思路----------------------
类的声明里不允许对类成员进行初始化,new只是开辟存储空间在堆上而已
------解决思路----------------------
你的是指针,能不用 new 吗
------解决思路----------------------
我怎么有点儿蒙圈了呢
变量的生命周期跟new没有任何关系啊!比如全局变量DWORD g_dbA,在程序的生命周期内它都存在;再比如一个函数内部的局部 DWORD *dbA = new DWORD,函数执行完之后立马delete掉,那它的生命周期就仅仅在函数执行过程中....
你的DWORD *a = NULL,报 "crt not initialized"运行错误,明显是没有new出来就使用造成的。指针你不new出来当然是不能够对其操作的(如取值、赋值等),除非这个指针指向一个已存在的对象
------解决思路----------------------
贴上代码,单步调试,看出错的具体是哪一句