为什么当我发送标志 -h 或 -H 时会出现段错误。
bool parse_command(int argc, char **argv, bool *header, char **fileName)
{
if (!argv)
return false;
bool *flagh = false;
bool *flagH = false;
char *options = "Hh";
int opt = 0;
while ( (opt = getopt(argc, argv, options ) ) != -1)
{
printf("HELLO");
switch (opt)
{
case 'h':
*flagh = true;
break;
case 'H':
*flagH = true;
break;
default:
usage_p1();
return false;
}
}
printf("%d", opt);
// Implement this function
return true;
}
最佳答案
这两行是你的问题:
bool *flagh = false;
bool *flagH = false;
您将 flagh
和 flagH
声明为 bool 值的指针,但它们尚未指向任何地方。事实上,它们绝对没有指向任何地方,因为您的初始化相当于
bool *flagh = NULL;
bool *flagH = NULL;
您可能不希望这些成为指针。将声明更改为
bool flagh = false;
bool flagH = false;
将分配更改为
flagh = true;
flagH = true;
关于c - 为什么运行此函数时会出现段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48391216/