我从用户那里得到命令行参数。
然后我为命令切换案例,例如:
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应该怎么做呢?请记住,用户正在将 file_name 输入到 **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.
}