You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言动态内存分配:查询p1、p2等变量的栈/堆存储位置

栈/堆内存分配解析:针对给定C代码
typedef struct {
    double x;
    double y;
} point;

point p1;
point* p2 = malloc(sizeof(point));

以下是各变量的内存存储位置说明:

  • p1:若为函数内的局部变量,存储在栈内存;若为全局/静态变量则位于静态存储区,通常这类直接声明的变量默认指局部栈变量。
  • p2:指针变量本身存储在栈内存,它的值是malloc分配的堆内存地址。
  • p1.x:作为栈上结构体p1的成员,随p1一同存在栈内存。
  • p2->x:p2指向的是malloc在堆上分配的结构体实例,因此该成员存储在堆内存。

内容的提问来源于stack exchange,提问作者Suthekshan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:39:54