Return pointer to a structure - C : i have this program, where you enter two dates into two structures (same type), and then I want a function to find which date i entered is the later date. It compares only year and month. Once the later date is found, i want the function to return a pointer to the structure with the later date. I then want to print out the later date.

This is what I have so far, but I get errors and I'm not sure about the pointer syntax.

    #include <stdio.h>

    struct date{
	 int year;
	 int month;
	 int day;
    };


    main()
    {
	struct date dates[2];
	int i = 0, res = 0;
	
	for ( i = 0 ; i < 2 ; i++){
		printf("Enter a year!");
		scanf("%d", &dates[i].year);
		
		printf("Enter a month!");
		scanf("%d", &dates[i].month);
		
		printf("Enter a day!");
		scanf("%d", &dates[i].day);
	}
		
		res = later(&dates[1], &dates[2]);
		
		printf("%d", &res);
			
	}
	
    int later(struct date *one, struct date *two){
	
	if (one->year > two->year){
		return *one;
	}		
	
	else if (one->year == two->year){
		if(one->month > two->month){
			return *one;		
		}	
		else 
		
		return *two;
	}
	
	else {
	return *two;	
	}
			
    }