c/c++:在visual studio中自动初始化指针为null
c/c++: Automatically initialize pointers to null in visual studio
我理解将未初始化的指针自动初始化为null所涉及的开销。但我已准备好应付这种开销;那么我如何使Visual Studio 2010 c++编译器将所有未初始化的指针设置为null
请注意,我不需要智能指针解决方案,因为我正在调试现有的应用程序。
我不知道有任何这样的功能,我从来没有听说过有人在寻找它。
这似乎是一条非常危险的道路。
当您编写的代码只是假设未初始化的指针是空指针时,会发生什么情况,然后您将代码迁移到IDE的新安装中,或者将其交给其他人?您将传播难以发现的UB bug。不是很好!
:
- 为未初始化的变量打开警告
- 初始化这些变量
或者,为了调试现有的破损代码,使用Visual Studio提供具有自动存储持续时间的未初始化数据的底层字节模式0xCC
。查找此值,而不是查找0x00
。
- 何时以及为什么操作系统将内存初始化为0xCD, 0xDD等malloc/free/new/delete?
您可以用这种行为创建一个类,类似于:
template <typename T>
class Ptr
{
public:
Ptr() = default;
Ptr(T*ptr) : ptr(ptr) {}
// ...
operator T*&() {return ptr;}
private:
T* ptr = nullptr;
};
相关文章:
- 分段错误 - 读取初始化指针的数组
- 初始化指针的常量向量
- 初始化指针或引用成员变量以指向另一个成员
- C++初始化指针/引用/复制细微差别
- 使用无效指针初始化指针声明符的行为是否未定义?
- 在一行中初始化指针(新uint8_t[高度*宽度*3])
- 如何使用可变模板初始化指针?
- 初始化指针时出现写入访问冲突
- C 错误,带有卷曲括号的字面初始化指针
- 重新初始化指针是一种不好的做法吗?
- 初始化指针?C
- 初始化指针向量的向量
- 如何在类函数中正确初始化指针
- C++初始化指针会使应用程序随机崩溃
- 初始化指针结构 - 内存中的外观
- 如何使用struct构造函数在结构中初始化指针阵列
- 在一行中声明并初始化指针到类实例
- 分配数组与初始化指针
- QT 中的非初始化指针
- 使用地址值初始化指针