Ste*_*ven 2 c++ memory initialization visual-c++ in-class-initialization
- - - - - - - - 编辑 - - - - - - - - - - - -
我抓住错误的值进行比较,cdcdcdcd来自其他地方.我仍然有我的方法在它们被触及之前抛出异常,但我的问题在于其他地方,我希望有一种方法可以"解开"我原来的问题.谢谢您的帮助.
- - - - - - - - 编辑 - - - - - - - - - - - -
我有一个类(MyClass)我从一些第三方类继承(反过来来自直接显示类 - 来自CBaseFilter,如果这很重要).我写这段代码:
MyClass* val = NULL;
val = new MyClass(); // Create an instance of the class.
Run Code Online (Sandbox Code Playgroud)
尝试进行方法调用会导致抛出异常.通过一点点调查,我发现当我取消引用val(val本身似乎有效......类似于0x0777fc90)时,它包含0xcdcdcdcd.我环顾四周,似乎这可能表明内存已经在堆上分配,但没有初始化.
那是什么意思?!如何调用new成功(val!= NULL)但是内存没有初始化到足以指向它的指针?某些基类初始化可能出现问题吗?如果是这样 - 我在寻找什么?
bob*_*obo 14
0xCDCDCDCD是来自C运行时库的内容的调试值.当你在调试版本中分配一块内存时,它会被初始化为这个虚假值,希望能够捕获bug.0xCDCDCDCD非NULL,永远不是有效的内存指针.
是否有可以检查的DirectShow传递的HRESULT?
尝试调用WINAPI函数GetLastError()并查看显示的内容.
| 归档时间: |
|
| 查看次数: |
18988 次 |
| 最近记录: |