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

runtime error for c++ code (based on pointers)

本文关键字:指针 代码 于指针 运行时错误      更新时间:2023-10-16

我正在为以下代码遇到运行时错误:

#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;
}

任何人都可以给我错误的原因吗?

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

您需要为b分配内存:

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

实时演示