In the following code, there is a memory leak if Info::addPart1() is called multiple times by accident:
Info::addPart1()
typedef struct { }part1; typedef struct { }
You should take a look at RAII