http://www.cplusplus.com/reference/cstdlib/calloc/
Calloc gibt dir null zurück wenn es nicht funktioniert hat und einen void pointer wenn es geglückt ist. Der int Pointer ist falsch, du du ein Array von Pointern auf structs willst und nicht ein array aus integer Pointern.
Das Gegenstück zu malloc/calloc ist "free":
http://www.cplusplus.com/reference/cstdlib/free/
Was theoretisch auch möglich wäre ist ein Vector aus der Standard Template Library:
Sieht Ressourcen-mäßig gut aus:
Dynamic memory usage for a vector is quite good as there is almost no additional overhead over and above the space required for the objects themselves. I have implemented a default allocate-ahead policy of 20 objects which you can change if you want (see later). If you have a rough idea of how many objects you are going to need then you can greatly cut down on memory resizing by calling the reserve(n) function ahead of time.