c++ - 指向非指针变量结构的指针。这些变量,堆或堆栈在哪里?

标签 c++ variables pointers

<分区>

例如假设这个 struct :

struct Point{
    int x;
    int y;
};

然后我声明了一个指向这个结构的指针:

Point* p;

p 的 x 和 y 在哪里,堆还是栈?

类也是这样吗?

最佳答案

where're x and y of that p, heap or stack?

无处可去。您还没有创建一个对象,只是一个可以指向一个对象的指针。

如果您在堆栈上创建一个自动对象,那么它将位于:

Point point;
Point * p = &point;

如果您在堆上创建一个动态对象(官方称为自由存储),那么它将位于:

Point * p = new Point; // Don't forget to delete it.

Is that the same for classes?

是的; struct 是一个类。

关于c++ - 指向非指针变量结构的指针。这些变量,堆或堆栈在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19185501/

相关文章:

python - 使用函数从 python 环境中删除所有变量/对象

c++ - 为什么取消引用称为取消引用的指针?

c - 如何初始化指向堆栈的指针

c++ - 使用 STL vector 而不是运算符 [] 时崩溃

c++ - 在 C++ 中将对象存储为类中的指针

c++ - 字符串流输出比较

分配给命名组的 Python 正则表达式

R 相当于 Matlab 的 'persistent'

c - C 中的指针和重新分配

c++ - asio::read with timeout