【发布时间】:2018-01-06 20:25:58
【问题描述】:
我有以下脚本:
typedef struct {
uint8_t red;
uint8_t green;
uint8_t blue;
} color;
color c1;
color* c2 = malloc(sizeof(color));
我想知道 c1 和 c2 的存储位置。我知道 malloc 存储在堆上,但是 c2 是一个指针,而那些存储在堆栈上? c1 是存储在堆上还是栈上?
【问题讨论】:
-
那不是一个有效的 C 程序。
-
c1是一个局部变量,因此在堆栈上。而c2是动态分配的,它位于堆部分。 -
不是脚本。两个问题为什么要问?对你有什么不同?。你为什么要问这个已经回答了数百次的问题
-
@TonyTannous
c1和c2都是堆栈中的局部变量,*c2是堆中的内存。
标签: c memory struct allocation