Core dumped trying to compile C++ Structure : When I try to run the code it asks for the first input, but next it show a core dumped.

And I have some doubts, how can I correct that fgets warnings?

And please if this code can be optimized please tell me, I`m trying to make
efficient code :D

Compile with these:

g++ -O2 -Wall Proy2.cpp -o Proy2

Code:

 # include < cstdio >

 # include < iostream >

using namespace std;

int main(){

	typedef struct PC{

	char Brand[20];
	char Model[20];
	char Serial[20];
	char Processor[10];

	};

	PC PC1[5],*machine;

	unsigned int i;

	for(i = 0; i < 4; i++){

	cout <<"Insert PC brand: ";
        fgets(machine->Brand, 20, stdin); fflush(stdin);

	cout <<"Insert PC model: ";
        fgets(machine->Model, 20, stdin); fflush(stdin);

	cout <<"Insert PC serial: ";
        fgets(machine->Serial, 20, stdin); fflush(stdin);

	cout <<"Insert PC processor: ";
        fgets(machine->Processor, 10, stdin); fflush(stdin);

	printf("PC Brand : %s", PC1[i].Brand);
	printf("PC Model : %s", PC1[i].Model);
	printf("PC Serial : %s", PC1[i].Serial);
	printf("PC Processor: %s", PC1[i].Processor);
	
	PC1[i] = *machine;

	}

	return 0;
}