Thread: strange error

  1. #1
    Registered User
    Join Date
    Nov 2007
    Posts
    164

    strange error

    Code:
      // Fig. 7.14: fig07_14.cpp
      // Passing arrays and individual array elements to functions.
     #include <iostream>
      using std::cout;
      using std::endl;
    
      #include <iomanip>
     using std::setw;
    
      void modifyArray( int[]); // appears strange
      void modifyElement( int );
    
      int main()
      {
         const int arraySize = 5; // size of array a
         int a[ arraySize ] = { 0, 1, 2, 3, 4 }; // initialize array a
    
         cout << "Effects of passing entire array by reference:"
            << "\n\nThe values of the original array are:\n";
    
         // output original array elements
         for ( int i = 0; i < arraySize; i++ )
            cout << setw( 3 ) << a[ i ];
    
         cout << endl;
    
         // pass array a to modifyArray by reference
         modifyArray( a );
        cout << "The values of the modified array are:\n";
    
         // output modified array elements
         for ( int j = 0; j < 6; j++ )
            cout << setw( 3 ) << a[ j ];
    
         cout << "\n\n\nEffects of passing array element by value:"
            << "\n\na[3] before modifyElement: " << a[ 3 ] << endl;
    
         modifyElement( a[ 3 ] ); // pass array element a[ 3 ] by value
         cout << "a[3] after modifyElement: " << a[ 3 ] << endl;
    
         return 0; // indicates successful termination
      } // end main
    
      // in function modifyArray, "b" points to the original array "a" in memory
      void modifyArray( int b[])
      {
         // multiply each array element by 2
         for ( int k = 0; k < 6; k++ )
            b[ k ] *= 2;
      } // end function modifyArray
    
      // in function modifyElement, "e" is a local copy of
      // array element a[ 3 ] passed from main
      void modifyElement( int e )
      {
         // multiply parameter by 2
         cout << "Value of element in modifyElement: " << ( e *= 2 ) << endl;
      } // end function modifyElement
    after compiling this and running the prog

    I get something strange

    see the code above "cout << "\n\n\nEffects of passing array element by value:"

    it should have print 0 2 4 6 8
    only but when i run I get one more number beside "8" which is "88013984"

  2. #2
    Registered User
    Join Date
    Jun 2007
    Posts
    41
    sure mate.. there is only 5 #'s in your array yet you are trying to access 6

    your loops are looking for
    a[0]
    a[1]
    a[2]
    a[3]
    a[4]
    a[5] <--- doesn't exist


    for ( int j = 0; j < 6; j++ )and
    for ( int k = 0; k < 6; k++ )

    change to

    Code:
    for ( int j = 0; j < 5; j++ )
    for ( int k = 0; k < 5; k++ )
    and it'll work

  3. #3
    Registered User
    Join Date
    Nov 2007
    Posts
    164
    thanks i should have concentrated lil more

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Testing some code, lots of errors...
    By Sparrowhawk in forum C Programming
    Replies: 48
    Last Post: 12-15-2008, 04:09 AM
  2. Connecting to a mysql server and querying problem
    By Diod in forum C++ Programming
    Replies: 8
    Last Post: 02-13-2006, 10:33 AM
  3. Game Pointer Trouble?
    By Drahcir in forum C Programming
    Replies: 8
    Last Post: 02-04-2006, 02:53 AM
  4. Dikumud
    By maxorator in forum C++ Programming
    Replies: 1
    Last Post: 10-01-2005, 06:39 AM
  5. ras.h errors
    By Trent_Easton in forum Windows Programming
    Replies: 8
    Last Post: 07-15-2005, 10:52 PM