指针立即变为NULL
Pointer becomes NULL immediately
我有以下LLVM代码。奇怪的是,类型为StoreInst
的si
变量在if块外被分配了新指令后立即变为null(0),而我在外部范围内声明了它。这是怎么回事?
Value *OldVal = NULL;
StoreInst* si = NULL;
if ( ... )
{
if ( ... )
{
....
if ( ... )
{
...
StoreInst* si = new StoreInst(...);
errs() << "si = " << si << "n"; // Get some address here
}
errs() << "-->SI = " << si << "n"; // Here I get NULL, why?
}
...
}
我得到这样的输出,
si = 0x1822ba0
-->SI = 0x0
StoreInst* si = new StoreInst(...);
-您在此处隐藏了以前的名称si
当作用域结束}
时,您会看到另一个指针的值
下面是你所做的一个例子:
int val = 0; //first val
{
int val = 10; //other val (let's call it second)
cout << val; //second val
} // second val is destroyed here
cout << val; //first val
为了简单起见,我在示例中使用了int
。实际上,它可以是任何类型的
相关文章:
- 当使用通配符和null指针调用函数时,对输出的说明
- 当目标指针不是基类的类型时,为什么允许dynamic_cast为多态类生成 null 指针?
- 将位数组转换为 HBITMAP 后 bmBits 的 NULL 指针
- 在访问类的树层次结构中的对象时避免使用 null 指针
- 排序时引用绑定到 'value_type' 类型的 null 指针
- NULL指针解决方案中的C 分割故障
- 取消引用会导致崩溃,即使对于非 NULL 指针也是如此,原因也是如此
- 跟进哈希表 C++,this->next = NULL 指针
- C++中的NULL指针
- 当删除NULL指针(C/C )时,可以保证SegFault
- 引用绑定到类型 'struct value_type' 的 null 指针
- 尝试在C++中使用 NULL 指针时不会发生分段错误
- if(NULL==指针)和if(指针==NULL)之间有什么区别
- 在Linux/GCC下,将NULL指针访问转换为C++异常
- NULL指针检查线程安全
- cppcheck null指针取消引用:m_buffer-否则,针对null进行检查是多余的
- strtok() - 为什么必须传递 NULL 指针才能获取字符串中的下一个标记
- Null指针异常(int Vs char)
- 用户定义类中的Null指针无效
- 不是NULL指针,而是错误的访问错误消息