struct Point {
int *x;
int y;
};
にして
p = (struct Point *)malloc( sizeof(struct Point) *10 );
p->x=(int *)malloc(sizeof(int)*10);
とメモリを確保したら
p[0〜9].x[0〜9] のメモリが確保されているということですよね。

p[1].x = 10;
とやったらxに10が入ると思ったのですが入らないのはなんでですか?