如何修复C中的地址边界错误

如何修复C中的地址边界错误,c,runtime-error,C,Runtime Error,我正在编写一个程序,它接受两个命令行参数,每个参数都指向字符串。我叫他们str和except。如果str中有小写字母,那么这是一个错误,程序结束。如果字符在str中,但不在except中,则打印。当我运行代码时收到此错误消息:“./a.out”被信号SIGSEGV终止(地址边界错误)当您不放置argv[2]或argv[1]时,将显示SIGSEGV。 请测试 /a本测试集 并且,您的代码意味着如果有小写字母,它将通过。(您的任务是,除非有小写字母) 请修复:如果((str[i]'Z'){Seg故障

我正在编写一个程序,它接受两个命令行参数,每个参数都指向字符串。我叫他们str和except。如果str中有小写字母,那么这是一个错误,程序结束。如果字符在str中,但不在except中,则打印。当我运行代码时收到此错误消息:“./a.out”被信号SIGSEGV终止(地址边界错误)

当您不放置argv[2]或argv[1]时,将显示SIGSEGV。 请测试

/a本测试集

并且,您的代码意味着如果有小写字母,它将通过。(您的任务是,除非有小写字母)


请修复:
如果((str[i]<'A')| |(str[i]>'Z'){

Seg故障表示正在访问一些无效内存。要修复该错误,您需要首先找到它。要查找此类错误(以及许多其他类型的错误)在调试器中运行该程序。它至少会立即准确地告诉您哪一行代码触发seg故障。调试器还可用于单步执行代码并在运行时检查状态。您真的只是在没有任何参数的情况下运行
/a.out
吗?该程序需要两个参数,因为代码没有对r参数的数量,如果没有提供足够的参数,它将访问无效内存。在继续之前,通过检查所需的参数数量,使代码更加健壮。