考虑下面的代码:赛格故障根据指针分配顺序
#include <iostream>
int main()
{
// ok by itself
int *ptr1;
int a = 3;
*ptr1 = a;
// ok by itself
int *ptr2 = new int(4);
delete ptr2;
}
这导致了赛格故障,我想不通为什么。如果其中任一块被评论,那没关系。如果第二块放在第一块上面,那也没关系。这里发生了什么?
未定义的行为未定义。期。修复bug(不要使用变量的值,直到你为它赋值)并且神秘将消失。 –
问问自己“当ptr1'被解除引用时,它指向什么”? –