My program outputs the 4 values correctly, but adds strange characters to some of them. What am I doing wrong?

I'm not sure if the problem lies within my copy function or my print function.

Here is my copy function (I have to write my own):

```
char* myStrCopy(char *destination,const char *source){
   while(*source != '\0'){
    *destination = *source;
    *source++;
    destination++;
   }

```

Here is my print function:

```
void printAllData(RentalAgency *agencies){

    RentalAgency *agencies_ptr = agencies;
    for(int i = 0; i < 3;i++,*(agencies_ptr++)){
        cout << agencies_ptr->name << " ";
        for(int j = 0; j < 5;j++){
            cout << *(agencies_ptr->zipcode+j);
        }
        cout << endl;

        RentalCar *inv_ptr = agencies_ptr->inventory;
        for(int j = 0;j < MAX_CARS;j++,++inv_ptr){
            cout << inv_ptr->getYear() << " ";
            cout << inv_ptr->getMake() << " ";
            cout << inv_ptr->getModel() << " ";
            cout << inv_ptr->getPrice() << " ";
            cout << boolalpha << inv_ptr->getAvailability() << endl;
        }
        cout << endl;
    }
    }

```

Here is the declaration of `RentalAgency`:

```
struct RentalAgency{
    char name[MAX_SIZE];
    int zipcode[5];
    RentalCar inventory[MAX_CARS];
};

```

The expected output of `RentalArray[2]` is:

```
Alamo 89502
2011 Toyota Rav4 $65.02 true
2012 Mazda CX5 $86.75 true
2016 Subaru Outback $71.27 false
2015 Ford F150 $112.83 true
2010 Toyota Corolla $50.36 true

```

But instead it outputs:

```
Alamo 89502
2011 ToyotaN Rav4 65.02 true
2012 Mazda CX5  86.75 true
2016 Subaru Outback 71.27 false
2015 FordÉ F15 112.83 true
2010 ToyotaÅ Corolla 50.36 true

```