我想修改来自parse_commandline()的items结构中的文件。从函数修改结构?
我可以没有问题通过使用strncpy而不是从parse_commandline()从main()修改items->文件。我需要修改parse_commandline(),以便它可以从main()收到有关项目的信息,我不知道该怎么做?
typedef struct {
int pack_01;
int pack_02;
char file[100];
} items;
static items character_y = { 1, 1 }
parse_commandline(int argc, char *argv[])
{
/* PARSE COMMANDLINE ARGUMENTS */
}
int main(int argc, char* argv[])
{
items *ptr_items = &character_y;
parse_commandline(argc,argv);
return 0;
}
为什么不只是传递一个额外的param到parse_commandline,例如, 'parse_commandline(int argc,char * argv [],items * ptr_items)'? – 2010-11-19 23:02:08
因为这看起来不起作用 - 警告:从不兼容的指针类型中传递'parse_commandline'的参数3 注意:期望的'struct items *'但参数的类型是'struct items **' – 2010-11-19 23:21:26
'items'是一种数据类型,你只能修改一个实例,但你没有指定哪个实例。在你的示例代码中,'items'的唯一实例是'character_y',它在'main()'和'parse_commandline()'中都可见,所以除了可能是一个糟糕的设计之外,它并不能解释为什么你不能访问它。 – Clifford 2010-11-20 00:25:28