Пытается следовать этому примеру. (Раздел Сортировка строк ...)
Есть ли что-нибудь очевидное, что могло бы вызвать этот сбой в qsort.c в stdlib?
Я также попытался cstring_cmp с strncmp, указав максимум 30 символов, что намного больше, чем у меня.
* fileArray [20], кажется, правильно заполнен строками.
Благодарю.
char* ptr_fileName;
char* fileArray[20];//number of files
size_t strings_len;
ptr_fileName = (char*)malloc((strlen(FindFileData.cFileName)+1)*sizeof(char));
memcpy(ptr_fileName, FindFileData.cFileName, strlen(FindFileData.cFileName)+1);
fileArray[i] = ptr_fileName;
strings_len = sizeof(fileArray) / sizeof(char *);
qsort(fileArray, strings_len, sizeof(char *), cstring_cmp);
//crashing in qsort.c
Функция сравнения c-строки qsort:
/* qsort C-string comparison function */
int cstring_cmp(const void *a, const void *b)
{
const char **ia = (const char **)a;
const char **ib = (const char **)b;
return strcmp(*ia, *ib);
/* strcmp functions works exactly as expected from
comparison function */
}