您好我刚刚开始使用C语言进行编程而我正在创建一个数组计数器,但是当我尝试运行时会出现分段错误:
//function to calculate the length of an array
int arr_length(char arr[]) {
int i = 0;
while(arr[i] != "\0") {
i++;
}
return i;
}
答案 0 :(得分:0)
while(arr[i] != "\0") {
i++;
}
相当于:
char const* str = "\0";
while(arr[i] != p) {
i++;
}
您正在将char
与char*
进行比较。它在大多数情况下评估为false
。因此,您最终会访问超出有效限制的arr
,从而导致未定义的行为。在您的情况下,这表现为分段错误。
您需要使用:
while(arr[i] != '\0') { // Compare with the null character
i++;
}