c - 检查 argv 中的符号时出现段错误

标签 c segmentation-fault character argv

我有一个函数可以检查 argv 末尾是否包含&符号(用于 shell 目的)并且它似乎没有任何理由给出了段错误。提前致谢

length(char **argv) 计算 argv 的长度。

int ampersandCheck(char **argv){
    int n = length(argv);
    int i = 0;
    while(argv[n][i] != '\0'){
        if(argv[n][i] == '&' && argv[n][i+1] == '\0') return 1;
        i++;
    }

    return 0;
}

最佳答案

这是因为您正在访问 argv[n][i] 中的位置 n。那个位置不存在。您可以访问的最后一个位置是 n - 1

关于c - 检查 argv 中的符号时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27088407/

相关文章:

在 C 程序中创建数据危险

c++ - 排序 vector 时出现段错误

r - 我们如何返回 R 中两个字符串中常见字符的数量?

c - 我的代码有什么问题......?

c - 在 C 中使用链接数据结构时的双指针

C - 2D 数组 malloc/free - 段错误

c++在转换中为多数组错误添加值(value)

javascript - 除了英语之外,还可以使用非英语字母字符 - React-Native

c - 可以使用 C11 栅栏来推理其他线程的写入吗?

c++ - `ncurses` 函数 `wgetstr` 正在修改我的变量