Я пытаюсь qsort динамически распределенный 2d массив, но безуспешно.Я предполагаю, что это как-то связано с динамическим размещением, потому что все работает нормально, если я использую глобальный 2d массив (например, fileList [148096] [100]).Есть идеи?
// global:
char **fileList;
void allocateFileListArray(void)
{
int arraySize = 148096;
int fileNameLength = 100;
/* allocate storage for an array of pointers */
fileList = (char **) malloc(arraySize * sizeof(char *));
/* for each pointer, allocate storage for an array of chars */
for (int i = 0; i < arraySize; i++)
{
if ((fileList[i] = (char *) malloc(fileNameLength * sizeof(char))) == NULL)
printf("failed fileList alloc\n");
}
}
void sortTheArray(int fileListCount)
{
qsort (( char * ) fileList, fileListCount, sizeof ( *fileList ),
(compfn) compareStrings );
}
int compareStrings(char *stackA, char *stackB)
{
int result;
result = strcmp( stackA->name, stackB->name);
return(result);
}