我有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在一起以实现缓存一致性。