我有records
灵活的数组成员
typedef struct record {
unsigned foo;
signed bar;
double number[];
} record;
我有多个records
相同数量的,numbers
所以我可以将它们排列成数组。我想将它们分配到一个连续的内存空间中。
const unsigned numbers = ...;
const unsigned records = ...;
const size_t record_size = sizeof(record) + numbers*sizeof(double);
record *prec = malloc(records*record_size);
所以现在我知道record_size
并且我可以访问它但是如何通过给定的record
索引正确和安全地执行它的最佳实践是什么?
foo
当我将包含andbar
和的标头分开时,我可以做到这一点numbers
,但我想保持record
在一起以实现缓存一致性。