【发布时间】:2013-12-20 05:48:18
【问题描述】:
struct atom {
int x;
int y;
int z;
double mass;
};
struct molecule {
struct atom *member;
int natoms;
};
struct system {
struct molecule *fragment;
int nfrags
};
struct system sys;
sys.nfrags=get_number_of_fragments;
????
系统有一定数量的分子,每个分子都有一定数量的原子。我不知道如何分配这些东西。如果我先分配 sys.fragment ,似乎 sizeof(molecule) 是未定义的,因为我还没有定义原子的数量(那么它怎么会有大小呢?)。如果我尝试先定义原子数,如何指定要分配的片段?
我有一些函数可以返回任何分子/片段的原子数以及片段数,但我不知道从哪里开始。
【问题讨论】:
-
也许值得看看可变大小数组是如何在 c 中实现的; `realloc' 是你的朋友。
标签: c gcc struct malloc sizeof