C++ 如何在结构的后面创建指针和实例';s定义

C++ 如何在结构的后面创建指针和实例';s定义,c++,pointers,struct,C++,Pointers,Struct,是否可以在结构定义之后使用指针以动态方式初始化? 请看这个例子。我试过了,但是当我尝试cout val是时,我得到了一个异常 在合适的地方: delete a; 通常不建议使用裸指针,您应该避免使用裸指针,如果确实需要指针,请尝试使用智能指针,如std::unique_ptr和std::shared_ptr是 在合适的地方: delete a; 通常不建议使用裸指针,您应该避免使用裸指针,如果确实需要指针,请尝试使用智能指针,如std::unique_ptr和std::shared_pt

是否可以在结构定义之后使用指针以动态方式初始化? 请看这个例子。我试过了,但是当我尝试
cout val是时,我得到了一个异常

在合适的地方:

delete a;

通常不建议使用裸指针,您应该避免使用裸指针,如果确实需要指针,请尝试使用智能指针,如
std::unique_ptr
std::shared_ptr

在合适的地方:

delete a;

通常不建议使用裸指针,您应该避免使用裸指针,如果确实需要指针,请尝试使用智能指针,如
std::unique_ptr
std::shared_ptr

在合适的地方:

delete a;

通常不建议使用裸指针,您应该避免使用裸指针,如果确实需要指针,请尝试使用智能指针,如
std::unique_ptr
std::shared_ptr

在合适的地方:

delete a;

通常不建议使用裸指针,您应该避免使用裸指针,如果确实需要指针,请尝试使用智能指针,如
std::unique_ptr
std::shared_ptr

您的代码

struct A{
public:
    int val = 0;
    A(){}
}*a,b,c;
定义结构
A
并声明三个全局变量,
A
b
c

a
属于“a*”类型-即指向
a
类型的指针,
b
c
a
类型的实例

简单基类型(例如int、指针等)的全局变量默认为0

结果相当于:

struct A{
public:
    int val = 0;
    A(){}
};
A* a = NULL;
A b;
A c;
当您的代码尝试使用
a
而不为其赋值时,它将取消对空指针的引用并崩溃。

您的代码

struct A{
public:
    int val = 0;
    A(){}
}*a,b,c;
定义结构
A
并声明三个全局变量,
A
b
c

a
属于“a*”类型-即指向
a
类型的指针,
b
c
a
类型的实例

简单基类型(例如int、指针等)的全局变量默认为0

结果相当于:

struct A{
public:
    int val = 0;
    A(){}
};
A* a = NULL;
A b;
A c;
当您的代码尝试使用
a
而不为其赋值时,它将取消对空指针的引用并崩溃。

您的代码

struct A{
public:
    int val = 0;
    A(){}
}*a,b,c;
定义结构
A
并声明三个全局变量,
A
b
c

a
属于“a*”类型-即指向
a
类型的指针,
b
c
a
类型的实例

简单基类型(例如int、指针等)的全局变量默认为0

结果相当于:

struct A{
public:
    int val = 0;
    A(){}
};
A* a = NULL;
A b;
A c;
当您的代码尝试使用
a
而不为其赋值时,它将取消对空指针的引用并崩溃。

您的代码

struct A{
public:
    int val = 0;
    A(){}
}*a,b,c;
定义结构
A
并声明三个全局变量,
A
b
c

a
属于“a*”类型-即指向
a
类型的指针,
b
c
a
类型的实例

简单基类型(例如int、指针等)的全局变量默认为0

结果相当于:

struct A{
public:
    int val = 0;
    A(){}
};
A* a = NULL;
A b;
A c;

当您的代码尝试使用
a
而不为其赋值时,它将取消对空指针的引用并崩溃。

您想做什么
a
是一个空指针,这就是为什么用
->
解除对它的引用会导致异常。可能。但也许不是。毕竟,这是未定义的行为。你想做什么
a
是一个空指针,这就是为什么用
->
解除对它的引用会导致异常。可能。但也许不是。毕竟,这是未定义的行为。你想做什么
a
是一个空指针,这就是为什么用
->
解除对它的引用会导致异常。可能。但也许不是。毕竟,这是未定义的行为。你想做什么
a
是一个空指针,这就是为什么用
->
解除对它的引用会导致异常。可能。但也许不是。毕竟,这是未定义的行为。