구조체 배열을 qsort 써서 정리하려하는데..

qsort 알고리즘은 잘 모르지만 까라면 까래서 일단 사용법만 보고 만들어봤는데 오류를 못잡겠네요


qsort(temp, SIZE, sizeof(Bookdata), compare_qty);

.

.

.

int compare_date(const void *x, const void *y){

int x_d[3] = { 0 }; //month, day, year 

int y_d[3] = { 0 };

char date[30];

char date2[30];


strcpy(date, ((Bookdata*)x)->dateAdded); // dateAdded는 월/일/년 이 입력된 문자열

date_(date, x_d);

strcpy(date2, ((Bookdata*)y)->dateAdded);

date_(date2, y_d); //오류나는 지점!!!


if (x_d[2] != y_d[2])

return x_d[2] - y_d[2];


else if (x_d[0] != y_d[0])

return x_d[0] - y_d[0];


else

return x_d[1] - y_d[1];

}


void date_(char date[], int ar[]){

char *temp;

char *delimiter = "/";


temp = strtok(date, delimiter);

ar[0] = atoi(temp); //month


temp = strtok(NULL, delimiter);

ar[1] = atoi(temp); //day


temp = strtok(NULL, delimiter);

ar[2] = atoi(temp); //year

}


다른건 다 맞는거 같은데




const void* y 값이 이상하게 잡혀가지고 오류가 나네요ㅠㅠ


qsort 들어가기전에 배열에 전부다 값 들어가있는거 확인했고, 다른 sort는 잘 되는데 저것만..


아직 오류가 나면 어디서부터 어떻게 접근해서 잡아야할지 감이 안와서.. 오늘 하루 종일 붙잡고있었는데 해결 못함...