gpt4 book ai didi

c - 如何分配这些结构?

转载 作者:行者123 更新时间:2023-11-30 15:42:00 26 4
gpt4 key购买 nike

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) 未定义,因为我尚未定义原子数(那么它如何具有大小?)。如果我尝试首先定义原子数,如何指定要分配的片段?

我有一些函数可以返回任何分子/片段的原子数以及片段数,但我不知道从哪里开始。

最佳答案

据我所知 sizeof(X) 不能是“未定义”。在此示例中,sizeof(molecule) 被明确定义为存储一个分子实例所需的内存量:一个原子指针(注意:不是您可以放在这里的任何数组的大小,只是指针的大小)和一个整数。因此,采用第一种方法并首先分配 sys.fragment 是完全可以的:

sys.fragment = malloc(sys.nfrag * sizeof(sys.fragment));

关于c - 如何分配这些结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20363547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com