这个coulde是一个愚蠢的问题,但我无法弄清楚我做错了什么(我没有在对方使用过两个结构)。如何在结构中使用结构?
我有两种结构:
struct test
{
struct ddata* difference;
int diff;
};
struct test *MSG;
struct ddata
{
char *filename;
char *size;
};
struct ddata *difference
,我想给他们重视这种方式(和我的程序冻结在这里):
MSG->difference = difference;
MSG->diff = diff;
那我做错了什么?
在此先感谢!
kampi
编辑:
的不同结构变量在我的功能之一创建(并在那里我想给值到我的MSG结构)。 MSG结构变量是全局声明的(我不知道这是否相关)。差异值声明和填充这种方式:
struct ddata *difference = (struct ddata *) malloc(dif * sizeof *difference);
memset(difference, 0, dif * sizeof *difference);
...
...
...
difference[diff].filename = strdup(primary[i].filename);
difference[diff].size = strdup(primary[i].size);
diff++;
我希望我给你你需要什么。
你分配任何内存,这些指针?如果您提供了一个能够编译的小而完整的示例,它可能会帮助我们看到问题所在。 顺便说一句,你没有两个结构“在”彼此(这是可能的,但它不是你在这里)。您有一个包含指向另一个结构的指针的结构。 – 2010-02-16 22:21:47
命名机制让我很难专注于代码。 – Amy 2010-02-16 22:32:44