Эй, ребята, это мой первый пост здесь, и мне было интересно, сможет ли кто-нибудь из вас помочь мне разобраться, как сортировать массив указателей на структуры. Вот мой код, и вот мое задание, если кому-то интересно .Как отсортировать массив указателей на структуры в C?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#define MAX 50
struct address
{
char name[50];
char street[50];
char citystate[50];
char zip[20];
};
int main()
{
struct address *ptr[50];
struct address tptr;
char buffer[80];
int count = 0;
for (int i = 0; i <MAX; i++)
{
ptr[i] = malloc(sizeof(struct address));
if (gets(buffer)== NULL)
{
break;
}
else
{
strcpy((*ptr[i]).name, buffer);
gets((*ptr[i]).street);
gets((*ptr[i]).citystate);
gets((*ptr[i]).zip);
free(ptr[i]);
count++;
}
}
for (int x = 0; x<count; x++)
{
for (int y = 0; y<count - 1; y++)
{
if ((*ptr[y]).zip>(*ptr[y + 1]).zip)
{
tptr = ptr[y + 1];
ptr[y + 1] = ptr[y];
ptr[y] = tptr;
}
}
}
for (int i = 0; i < count; i++)
{
puts((*ptr[i]).name);
puts((*ptr[i]).street);
puts((*ptr[i]).citystate);
puts((*ptr[i]).zip);
}
}
http://www.cplusplus.com/reference/cstdlib/qsort/ – jangler
Начните с отступывания своего кода, чтобы люди (включая себя) могли его прочитать! –
Фактически, перед этим, опубликуйте что-то, что скомпилируется. В строке 'gets (buffer)' '' buffer' не был объявлен. (Конечно, 'get' тоже является ошибкой). –