I have problem working with dynamic array of pointer structs. It seemed that at the end of the loop array have only 2 pointers inside. I don't know why is that. I new to C and low level stuff. I am asking for help! Could You please explain me why this is happening? 
#include <stdlib.h>
struct Coordinates {
short x;
short y;
};
const short BOARD_SIZE = 8;
const short MAX_SIZE = 10;
int main() {
struct Coordinates **possible_moves = malloc(MAX_SIZE * sizeof(struct Coordinates));
for (short i = 0; i < BOARD_SIZE; ++i) {
struct Coordinates *current_coordinates = malloc(sizeof(struct Coordinates));
current_coordinates->x = i;
current_coordinates->y = i;
possible_moves[i] = current_coordinates;
}
return 0;
}