Name: Anonymous 2011-01-29 19:39
If I do this to make a dynamic array:
//======================================
int* a = NULL; // Pointer to int, initialize to nothing.
int n; // Size needed for array
cin >> n; // Read in the size
a = new int[n]; // Allocate n ints and save ptr in a.
for (int i=0; i<n; i++) {
a[i] = 0; // Initialize all elements to zero.
}
. . . // Use a as a normal array
delete [] a; // When done, free memory pointed to by a.
a = NULL; // Clear a to prevent using invalid memory reference.
//======================================
And I later want to increase the size of the array (Maybe i received more data) or decrease the size of the array (Memory suddenly more critical than data so I want to delete half the data points) is there any way to do this *other* than what I've been doing which is: Make a new array in the correct size, fill in, delete old array.
//======================================
int* a = NULL; // Pointer to int, initialize to nothing.
int n; // Size needed for array
cin >> n; // Read in the size
a = new int[n]; // Allocate n ints and save ptr in a.
for (int i=0; i<n; i++) {
a[i] = 0; // Initialize all elements to zero.
}
. . . // Use a as a normal array
delete [] a; // When done, free memory pointed to by a.
a = NULL; // Clear a to prevent using invalid memory reference.
//======================================
And I later want to increase the size of the array (Maybe i received more data) or decrease the size of the array (Memory suddenly more critical than data so I want to delete half the data points) is there any way to do this *other* than what I've been doing which is: Make a new array in the correct size, fill in, delete old array.