我想修改parse_commandline()中items结构中的文件。
我可以毫无问题地使用strncpy修改main()中的items->文件,但不能使用parse_commandline()。我需要修改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;
}
答案 0 :(得分:1)
执行此操作的方法是将指向item
的指针传递给parse_commandline
函数,并让函数根据参数更新结构。
parse_commandline(int argc, char *argv[], items* pItems) {
pItem->pack_01 = 42;
...
};
int main(int argc, char* argv[]) {
items items;
parse_commandline(argc, argv, &items);
...
}
答案 1 :(得分:0)
将结构传递给C中的函数与传递任何其他变量没有什么不同。在您的情况下,您应该通过引用来完成它,以便您可以修改调用者的结构:
void parse_commandline(int argc, char *argv[], items *theItems)