new is a local instance of point that'll be destroyed once the function returns. generally passing around and returning full structs creates alot of unnecessary overhead. instead, try passing a pointer to the struct.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
struct point {
int x;
int y;
};
void makepoint(int a, int b, struct point *ppt);
int main() {
struct point point1;
makepoint(1,1,&point1);
printf( "done" );
getchar();
return 0;
}
void makepoint(int a, int b, struct point *ppt) {
ppt->x=a;
ppt->y=b;
}