Napisalem takie cos tylko to nie chodzi, wydaje mi sie ze trzeba zrobic za pomoca tablicy struktur, ale jestem poczatkujacy i nie wiem jak to ma wygladac

 #include "stdafx.h"

struct Data
        {
        int d,m,r;
    };
int SORT(const void *p, const void *q)
    {
        Data *a=(Data*)p, *b=(Data*)q;
        int k=a->r - b->r;
        if (k) return k;
        k=a->m - b->m;
        if (k) return k;
        return a->d - b->d;

    }
int _tmain(int argc, _TCHAR* argv[])
{
    int n,i;
    int (*A)[3];
    struct Data D;
    printf("Podaj ile ma byc DAT: \n");
    scanf_s("%d",&n);
    A=(int(*)[3])calloc(n,sizeof(*A));
    if(A==NULL) return 0;

    for(i=0;i<n;i++)
    {
        fprintf(stderr,"Podaj date w postaci dzien-mies-rok: %d\n",i+1);
        scanf_s("%d%*c%d%*c%d",&D.d,&D.m,&D.r);
        A[i][0]=D.d;
        A[i][1]=D.m;
        A[i][2]=D.r;
    }
    qsort(A,n,sizeof(*A),SORT);
    for(i=0; i<n;i++)
    {
    printf("%d.%d.%d\n", A[i].d, A[i].m,A[i].r);

    }
 free(A);
        return 0;

}