그래서 저는 함수를 좀 더 잘 배우고, 유용한 함수를 작성하고 재귀 적이며 프로그램에 주어진 숫자 목록을 정렬 할 수있게하려고합니다. 그러나 여기서 세분화 오류가 발생합니다. argv[]
에 항목이 부족할 때 argv[i+1]
을 읽으려고 할 때 이것이 발생한다고 생각합니다. 그렇지만 내 if(i < argc){
명세서가 이것을 확인하지 못하면 왜 이런 일이 일어나지 않을까요?세분화 오류를주는 기본 Bool 함수
여기 내 코드가 있습니다.
#include <stdio.h>
#include <ctype.h>
#include <math.h>
#include <string.h>
#include <stdbool.h>
bool compare(val1,val2)
{
if(val1 > val2){return false;}
else{return true;}
}
// int values[], int n
int main(int argc, char *argv[])
{
for(int i=1; i<argc; i++){
//print unsorted list
printf("%s\n",argv[i]);
if(i < argc){
if(compare(*argv[i],*argv[i+1]))
{
printf("true\n");
}
else
{
printf("false\n");
}
}
// Add else for odd numbered lists
}
return 0;
}
'난 경우는 argc == - 1 ','는 argv가 [I + 1] '미정이다. –
여러분의 의견에 감사드립니다. – Gates