#include <bits/stdc++.h>
using namespace std;
typedef struct contact
{
    char *name;
    char *number;
    char *birthday;
    char *email;
    char *memo;
}contact;
contact *contacts;
int total=0;
void initDB()
{
     contacts = new contact[50001];
}
void Add(char *name,char *number,char *birthday,char *email,char *memo)
{
    contacts[total].name = name;
    contacts[total].number = number;
    contacts[total].birthday = birthday;
    contacts[total].email = email;
    contacts[total].memo = memo;
    total++;
}
int main()
{
    initDB();
    char name[20];
    char number[20];
    char birthday[20];
    char email[20];
    char memo[20];
    for (int i = 0; i < 4; ++i)
    {
        cin >> name>>number>>birthday>>email>>memo;
        Add(name,number,birthday,email,memo);
    }
     cout << contacts[0].memo<<" "<<contacts[1].memo<< endl;
   return 0;
}
I have created an array pointer using new contact[50001];
Suppose I have input like
A 111 0101 a.com aaa
B 222 0202 b.com bbb
C 333 0303 c.com ccc
D 444 0404 d.com ddd
When I print first insert second row, it removes all previous records. The output of my code is ddd ddd. How can I get the desired result? Thanks in advance.
 
     
     
    