c ++代码的运行时错误(基于指针)

时间:2017-03-01 17:59:03

标签: c++ pointers

我收到以下代码的运行时错误:

#include <iostream>
using namespace std;
struct a
{
    int i;
}*b;

int main() {
   b->i = 1;
   a* c = new a(*b);
   cout << c->i; 
   return 0;
}

有人能告诉我错误的原因吗?

1 个答案:

答案 0 :(得分:1)

您正在尝试访问未初始化指针的i成员。

您需要为b分配内存:

b = new a();
b->i = 1;
a* c= new a(*b);
cout << c->i;
delete b;
delete c;

Live Demo