Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Struct Malloc结构中的结构?_Struct_Malloc - Fatal编程技术网

Struct Malloc结构中的结构?

Struct Malloc结构中的结构?,struct,malloc,Struct,Malloc,我决定在这个程序中使用结构来保持它的组织性,所以我现在有了一个结构链。我的问题是,我是否必须malloc另一个结构中的结构。例如: typedef struct OnlineS { struct BBSIS *bbsi; struct BBVIS *bbvi; struct VBVIS *vbvi; } *OnlineP; typedef struct BBSIS{ struct FirstFitS *ff; struct BestFitS *bf; struct NextFitS *nf;

我决定在这个程序中使用结构来保持它的组织性,所以我现在有了一个结构链。我的问题是,我是否必须malloc另一个结构中的结构。例如:

typedef struct OnlineS {
struct BBSIS *bbsi;
struct BBVIS *bbvi;
struct VBVIS *vbvi;
} *OnlineP;

typedef struct BBSIS{
struct FirstFitS *ff;
struct BestFitS *bf;
struct NextFitS *nf;
int itemNum;
int binNum;
int binMin;
int binMax;
int *items;
}*BBSIP;
等等,我的声明和mallocs会是什么样子

OnlineP on = malloc(sizeof (struct OnlineS));
on->bbsi = malloc(sizeof (struct BBSIS));
on->bbsi->bf = malloc(sizeof (struct BestFitS));
on->bbsi->nf = malloc(sizeof (struct NextFitS));
on->bbsi->ff = malloc(sizeof (struct FirstFitS));
on->bbvi = malloc(sizeof (struct BBVIS));
on->bbvi->bf = malloc(sizeof (struct BestFitS));
//ETC

如果在结构中使用指向结构的指针,则还必须为此管理内存。(malloc/免费)

如果在结构中使用结构,则不管理内部结构的内存。因为它们是外部结构的一部分,所以没有必要这样做

在外部结构中使用指向结构的指针,因此必须使用malloc和free


首先为外部结构分配内存,然后将指向内部结构的所有指针设置为null或为其分配内存。

结构中没有结构

您的结构中有一个指针,指针的内存已分配

考虑以下构造:

typedef struct node {
   struct node* next;
}
(这很常见-链表)


它应该分配多少节点?

这是一个使用多种启发式算法的装箱应用程序(HW)。在每个启发式(即BestFit)中有多个具有可变数量节点的链表,为了组织目的,我将其制作成自己的结构。正在从外部文本文件处理的节点数(该文件随后被正确地malloced)。我想说的是:编译器无法自动分配,因为它可能是自引用的。对于记录,您确实需要检查
malloc
的返回值是否为零。不这样做会导致不可靠。