1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 解引用空指针问题

解引用空指针问题

时间:2024-03-04 18:47:02

相关推荐

解引用空指针问题

今天看到一段奇怪的代码,它的主要流程是这样的:

void set(){Test* p = nullptr;Test *a = new Test;*p = a;std::cout << p->getMember() << "\n";}

第一感觉这代码肯定是有问题的,应该是编译不过至少应该会有warning,但事实证明这段代码可以编译通过,而且也没有warning。(虽然这段代码确实是错误的)

类Test的定义大致如下:

class Test {public:Test():member(0){};Test(const Test* c) : member(c->member){};int getMember() const{return member;}private:int member;};

*t=a这行代码相当于调用构造函数Test(const Test *t),所以这段代码可以编译通过。 但是运行的话会产生未定义的行为(undefined behavior)。

看来这种情况只能靠经验了。

千万不要解引用空指针,千万不要解引用空指针,千万不要解引用空指针。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。