Page 1 of 1

Pointers and memory (arrays)

Posted: Fri Jun 04, 2010 3:01 pm
by darknkreepy3#

Code: Select all

/*
pointers in c++ by Kristoffe Brodeur
06-04-2010
*/
#include <iostream>

using namespace std;

int main()
{
    int numberArr[4]={1,3,7,11};
    //
    for(int a=0;a<4;a++)
         {
         cout << "element[" << a << "](" << numberArr[a] << ")\n";
         }
    
    int *pointerEle=&numberArr[2];
    cout << "numberArr element [2] is (" << *pointerEle << ")" << endl;
    cout << "to point to the next array element, add 1 to the pointer [2+1](" << *(pointerEle+1) << ")" << endl;
    cout << "if parenthesis aren't used *(pointerEle+1) but *pointerEle+1 is\n";
    cout << "You get he VALUE of *pointerEle's location +1, which is (" << *pointerEle << ")+1=" << *pointerEle+1 << endl;
    cout << "------------------\n";
    //-----dynamic arrays, finding free memoryand allocating it for use
    //make a pointer, type integer and zero it out
    int *newMemoryArr=0;
    //with that pointer make a new array of 100 possible integers and allocate memory for it
    newMemoryArr=new int[100];
    int varTest=newMemoryArr[5];
    varTest=216;
    cout << "after making a new array of integers, we can then define them\n"
         << "by using a variable pointing to the memory location\n"
         << "the variable varTest=" << varTest << "\n"
         << "and the array newMemoryArr is a series of pointers to memory. \n"
         << "newMemoryArr[5]=" << newMemoryArr << "\n";
    //-----expanding an array:if we need 166 positions but only hae 100 in newMemoryArr, we should make a larger array
    int largerAmt=166;
    //make a pointer, type integer and zero it out
    int *newLargerArr=0;
    newLargerArr=new int[largerAmt];
    //
    for(int x=0;x<100;x++)
         {
          newLargerArr[x]=newMmoryArr[x];
         }
    //c++ can mass readjust all pointers in the old array to point to the new array of 0-99(100)
    newMemoryArr=newLargerArr;
    //-----delete the array if no longer needed, to free up memory for something else
    //delete [all cases 0~inf] of array newMemoryArr;
    delete [] newMemoryArr;
    delete [] newLargerArr;
    system("PAUSE");
    return EXIT_SUCCESS;
}