【发布时间】:2014-09-16 02:22:15
【问题描述】:
我有一个基本的内存分配相关问题。 C 中以下结构的总大小是多少?
typedef struct rubble
{
int betty;
char barney[4];
struct rubble* bambam;
} rubble;
typedef struct{
short* wilma[2];
short fred[2];
rubble dino;
}flinstone;
对于 rubble = betty(4 bytes) + barney (4 bytes) + bambam (?)。指向碎石类型的 bambam 指针的大小是多少?
对于 flinstone = wilma ( 4 bytes ?) + fred ( 4 bytes ) + dino( sizeof(rubble) )
在这种情况下,我们如何计算指向 short 类型的指针的大小?
【问题讨论】:
-
取决于编译器和优化级别。
-
@JimZilla 一个指针指向的东西,它不包含它所指向的东西。
-
指向short的指针或指向任何东西的指针将始终具有相同的大小,因为它们本质上是地址。这取决于程序可用的地址空间。
-
@enhzflep:请注意,指针的大小不必全部相同。 stackoverflow.com/questions/6751749/size-of-a-pointer
-
@enhzflep:这是一个例子:stackoverflow.com/a/399999/47453