Arrays and functions

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Ramsin
    New Member
    • Jul 2011
    • 15

    Arrays and functions

    Hi, read the following code,
    Code:
    #include "IntegerArray.h"
    using namespace std;
    
    int main() {
    	int size, n;
    	
    	cout << "Size of a single array: ";
    	while(true) {
    		cin >> size;
    		cin.ignore();
    		if(size >= 1 && size <= 100) break;
    	}
    	
    	int * a = new int[size];
    	int * new_a = new int[size];
    	int * b = new int[size];
    	int * new_b = new int[size];
    	
    	cout << "(to input): "; 
    	cin >> n;
    	cin.ignore();
    	new_a = input_array(a, n);
    	
    	cout << "(to copy): "; 
    	cin >> n;
    	cin.ignore();
    	new_b = copy_array(b, new_a, n);
    	
    	cout << "(to display): ";
    	cin >> n;
    	cin.ignore();
    	display_array(new_b, n);
    	
    	delete [] a;
    	delete [] new_a;
    	delete [] b;
    	delete [] new_b;
    }
    Code:
    #include <iostream>
    using namespace std;
    
    int * const input_array(int * const a, int n) {
    	int p;
    	for(int i=0; i<n; ) {
    		cin >> p;
    		cin.ignore();
    		a[n] = p;
    		i++;
    	}
    	
    	return a;
    }
    
    int * const copy_array(int * const a, int * const b, int n) {
    	for(int i=0; i<n; ) {
    		a[n] = b[n];
    		i++;
    	}
    	
    	return a;
    }
    
    void display_array(int * const a, int n) {
    	for(int i=0; i<n; ) {
    		cout << "[" << i << "] " << a[i] << endl;
    		i++;
    	}
    }
    The error I get is,
    Code:
    *** glibc detected *** ./a.out: double free or corruption (fasttop): 0x09ffe008 ***
    I'm tired now, that's why I may just have missed something. Thanks for help...
Working...