【发布时间】:2013-11-13 21:54:57
【问题描述】:
我正在从用户那里获取命令行参数。
然后我为命令做 switch case,例如:
case 'f':
*file_name = optarg;
break;
我不确定是否需要 malloc 指针,因为我不完全理解 optarg。
file_name 是这样声明的:
char **file_name;
我应该这样做
int length = strlen(optarg); // This gives a warning about types when compiling.
然后malloc为字符串长度+1?
这种问题应该怎么做malloc呢?记住用户在 **argv 中输入了 file_name。
编辑:这就是我调用此函数的方式,但仍然出现分段错误。
int main(int argc, char **argv)
{
char **file_name;
parser(argc, argvm file_name);
}
void parser(int argc, char **argv, char **file_name)
{
// Switch cases.
}
【问题讨论】:
标签: c malloc command-line-arguments