我正在从用户那里获取命令行参数。
然后,我会针对这些命令使用开关语句,例如:
case 'f':
*file_name = optarg;
break;
我不确定是否需要为指针分配内存,因为我不完全理解optarg。
这是file_name的声明方式:
char **file_name;
我应该做什么?
int length = strlen(optarg); // This gives a warning about types when compiling.
那么为字符串长度+1分配内存吗?
对于这种问题应该如何进行malloc?请记住,用户将文件名输入**argv。
编辑: 这是我调用此函数的方式,仍然出现分段错误。
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.
}