typedef struct {
double x;
double y;
} point;
point p1;
point* p2 = malloc(sizeof(point));
在此代码中,变量 p1、p2、p1.x 和 p2->x 存储在堆栈或堆内存中?
上述变量存储在栈内存还是堆内存中?
typedef struct {
double x;
double y;
} point;
point p1;
void foo(void)
{
point* p2 = malloc(sizeof(point));
/* ... */
}
p
具有静态存储期限(与整个程序的生命周期相同)p2
具有自动存储期限(寿命与功能foo
相同)*p2
(指针p2
引用的对象具有已分配存储持续时间(与整个程序的生命周期相同)在此代码中,变量 p1、p2、p1.x 和 p2->x 存储在 堆栈内存还是堆内存?
上述变量存储在栈内存还是堆内存中?
C 标准没有说明这些对象存储在哪里,从程序员的角度来看这并不重要。只有存储时间对您来说很重要