У меня есть такая структура:
typedef struct {
char *str;
...
} nameType;
Я создаю новый экземпляр указателя, инициализирую указатель str внутри него (все это было сделано правильно, я могу сделать printfs, чтобы проверить его).
nameType *names;
names = malloc( 10 * sizeof( nameType ) );
for ( i = 0; i < 10; i++ ) {
...
names[ i ].str = malloc( ... );
...
}
А потом я хочу отсортировать его с помощью пузырьковой сортировки, но у меня возникают проблемы с этим.Заметил, что мне удалось сделать это с помощью qsort, но после нескольких дней отладки, тестирования, поиска в Google и т. Д. Я все еще не могу его найти.Код сортировки:
for ( i = 0; i < n - 1; i++ ) {
for ( j = n - 1; j > i; j-- ) {
if ( strcmp( names[ i ].str, names[ j ].str ) > 0 ) {
nameType *tmp;
tmp = names[ i ];
names[ i ] = names[ j ];
names[ j ] = tmp;
}
}
}
(Приведенный выше код является лишь примером того, что я делаю с сортировкой - я перепробовал так много вариантов, что у меня не получится.)