我有一个函数可以检查 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/