【发布时间】:2013-02-04 23:05:00
【问题描述】:
我正在编写一个程序,它必须为某种类型分配内存,它必须存储数据的大小以及我传递给它的数据的大小。因此,如果我分配 8 个字节,我需要将内存大小存储在前 4 个字节中,并将剩余大小存储在其他 4 个字节中。我认为这被称为有标题,但我对 C 还是很陌生。 我现在只有分配的空间,我如何在其中存储值?
int * mem_start_ptr; //pointer to start off memory block
int data;
data = &mem_start_ptr;
mem_start_ptr = (long *)malloc(sizeof(long)); //reserver 8 bytes
【问题讨论】:
-
等等..我不明白这个问题
-
long 类型没有 8 个字节,它有 4 个。如果要 8 个字节,则需要 long long。
-
@FredericoSchardong:这取决于你的平台。
-
@OliCharlesworth 哪个平台的 long 类型有 8 个字节?
-
@FredericoSchardong:例如x86 上的 GCC。
标签: c pointers memory header malloc