【发布时间】:2011-01-17 14:54:58
【问题描述】:
这可能是一个愚蠢的问题,但我无法弄清楚我做错了什么(我没有使用过彼此的两个结构)。
我有两个结构:
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;
那我做错了什么?
提前致谢!
坎皮
编辑:
差异结构变量是在我的一个函数中创建的(在那里我想为我的 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++;
我希望我给了你你需要的东西。
【问题讨论】:
-
您是否为这些指针分配了内存?如果您提供一个能够编译的小而完整的示例,它可能会帮助我们了解问题所在。顺便说一句,你没有两个相互“在”的结构(这是可能的,但这不是你在这里所拥有的)。您有一个结构包含指向另一个结构的指针。
-
命名方案让我很难专注于代码。