CArray の GetData メソッドで中身がまるまるもらえて、しかも中身書き換えてOKなのです。
struct StructHoge { int number; }; ... CArray <StructHoge, StructHoge> arrayHoge; ... // ソート関数 int compareHoge(void* context, const void* a1, const void* a2) { StructHoge* p1 = (StructHoge*)a1; StructHoge* p2 = (StructHoge*)a2; if (p1->number != p2->number) { return p1->number - p2->number; } return 0; } ... // ソート StructHoge* pHoge = arrayHoge.GetData(); qsort_s((LPVOID)pHoge, arrayHoge.GetCount(), sizeof(StructHoge), compareHoge, NULL);