Полагаю, это должно быть проще ..
int compare(const void *node1, const void *node2) {
BINARY_ARRAY_RECORD *ptr1 = *(BINARY_ARRAY_RECORD * const *)node1;
BINARY_ARRAY_RECORD *ptr2 = *(BINARY_ARRAY_RECORD * const *)node2;
return strcmp(ptr1->name, ptr2->name);
}
А также я думаю, что вызов функции qsort может быть совершенно правильным, если бы это было что-то вроде этого,
qsort(records, 2, sizeof(BINARY_ARRAY_RECORD*), compare);
Я думаютретий аргумент должен быть размером структуры, и вы точно можете быть уверены, что это что-то похожее на приведенное выше.