当前位置:  开发笔记 > 编程语言 > 正文

为什么我有时会在指针中得到一个奇怪的地址

如何解决《为什么我有时会在指针中得到一个奇怪的地址》经验,为你挑选了1个好方法。

所以,我正在使用C++和openFrameworks.有时当我尝试获取指向类实例的指针时,通常我得到类似的东西(00000000038468B0).或者当它不存在时,它返回一个nullptr.一切都是编程的,因此值可以是nullptr,也可以是指实际的实例.

我这样做总是将指针的值设置为头文件中的nullptr.

someClass* someInstance = nullptr;

当我删除一个实例时,我总是在对该实例的任何引用中将其设置回nullptr.

但有时指针返回DDDDDDDDDDDDDDD,这意味着应用程序将崩溃,因为它会通过我的安全if if语句,在使用它之前检查指针是否为nullptr.

任何人都知道DDDDDDDDDDDDDDD是什么?我似乎无法找到任何有关它的信息......



1> eerorika..:

根据这个页面:Win32 Debug CRT Heap Internals

记住每个填充模式意味着什么的助记符:

新分配的内存(0x C D)是清洁内存.

free()d内存(0x D D)是死记忆.

保护字节(0x F D)就像你的记忆中的围栏一样.

因此,假设您的平台是Win32,那么就会释放指针所在的内存.

它表明您一直在访问无效内存,在这种情况下您将有未定义的行为.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有