2017-03-01 54 views
-5

我得到一个运行时错误输入以下代码:运行时错误(基于指针)

#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

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

您需要为b分配内存:

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

Live Demo