【发布时间】:2015-07-30 02:06:40
【问题描述】:
我有以下代码部分,我注意到如果我将 0 更改为 1,结果是相同的。我得到STACKprint();,第二个参数是“on”,没有任何其他参数,如果没有参数,我会遇到分段错误。我想对于分段错误,我需要检查参数是否为NULL,但我不确定如何使用第二个参数来执行此操作,这真的让我很困惑为什么(strcmp (argv[2],"on") == 1) 没有效果。它不应该采用 TRUE 值吗?
if (strcmp (argv[2],"on") == 0) {
STACKprint();
printf("\n");
}
【问题讨论】:
-
为了防止分段错误,需要检查
argc。 -
您将使用
argc(计数)来确定argv[2]是否存在。 -
@aschepler 很抱歉这个愚蠢的问题,但
STACKprint()是什么? -
将 0 更改为 1 应该会改变结果。还有什么不对劲的。您能否编辑您的帖子以包含整个
main()函数,将 1 放在适当的位置,并显示输出?