개발 및 연구 정보

[VC++]구조체를 qsort 하기

바보천사 2007. 11. 6. 20:51

아래 내용은 데브피아에서 펌....

즉, 결론은, 비교 함수를 static로 하면 해결되는듯  함...

아직 해보진 않아서....ㅡㅡ;..

이전에 이런 오류로 qsort 사용을 포기하고 다른 방법을 사용했는데..ㅡㅡ;..

해결방법이 아래와 같다면, 자유자제로 사용할 수 있을듯...

=============================================================================

typedef struct EXAM{

        char    szName[NAMELEN+1];  

        char    szTest[TLEN+1];            

        

        int     nCnt;               

        int     nGubun;             

        int     nVol;               

        int     nPrice;             

        int     nUnVol;             

}BUYSELL

 

BUYSELL* m_pBuySel = new BUYSELL[100]; 

 

qsort(m_pBuySell,100,sizeof(BUYSELL), SortSellBuy);

 

int CTest::SortSellBuy(const void *s1, const void *s2)

{

  return (memcmp(((BUYSELL*)s1)->sszTest, ((BUYSELL*)s2)->szTest, sizeof(BUYSELL)*100));

}

========================================================

오류 내용: error C2664: 'qsort' : cannot convert parameter 4 from 'int (const void *,const void *)' to 'int (__cdecl *)(const void *,const void *)'

========================================================

해결방법: SortSellBuy 함수를 static 멤버로 할당