gpt4 book ai didi

c - 程序接收信号SIGSEGV,Segmentation fault错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:23 26 4
gpt4 key购买 nike

程序收到信号SIGSEGV,段错误

在 LINE 上:if (argv[1][0] == '-').

当在 unix shell 中看到“-c”标志时,我试图让它做一些事情

int main(int argc, char **argv)
{

int target_column=1;
int column_flag=0;
int descending_flag=0;

/* command-line argument control */
printf("Argument(s) detected(%d)\n", argc);

/* default mode */
if (argc = 3)
{
if (argv[1][0] == '-')
{
/* column flag */
if (argv[1][1] == 'c')
{
column_flag=1;
printf("column flag found, ");
}
/* error checking */
else
{
fprintf(stderr, "tsort -c <column> [-d]\n");
exit(EXIT_FAILURE);
}
}

非常感谢您的回答。绝对是那个小错字。

最佳答案

如果你想检查参数的数量,使用==:

if (argc = 3)   // This assigns 3 to argc and always yields true
{
if (argv[1][0] == '-')

应该是

if (argc == 3)
{
if (argv[1][0] == '-')

编译器应该就此警告您。如果不是,请始终使用 -Wall -Wextra 进行编译以避免这种情况。

关于c - 程序接收信号SIGSEGV,Segmentation fault错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18934642/

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