gpt4 book ai didi

c - 为什么从 getopt_long() 中省略这一行会导致段错误?

转载 作者:行者123 更新时间:2023-11-30 18:37:52 24 4
gpt4 key购买 nike

使用gcc -Wall getopt.c -o options进行编译并运行一些示例后,乍一看似乎可以工作。故意绊倒它会导致段错误。

//straight from the man page
static struct option long_options[] = {
{"add", required_argument, 0, 0 },
{"append", no_argument, 0, 0 },
{"delete", required_argument, 0, 0 },
{"verbose", no_argument, 0, 0 },
{"create", required_argument, 0, 'c'},
{"file", required_argument, 0, 0 },
{0, 0, 0, 0 } //<-- if i omit this line, it segfaults
};

为什么当我省略这一行时会导致段错误?

或者更确切地说,以不同的方式询问

为什么必须将最后一组结构选项数组成员初始化为 null?

最佳答案

简单。因此处理数组的代码知道它何时结束。它被称为哨兵。

关于c - 为什么从 getopt_long() 中省略这一行会导致段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35548729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com