Thread: Unexplainable program crash

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User
    Join Date
    Sep 2007
    Posts
    100

    Unexplainable program crash

    Hi,

    I have three files - routeData.h, routeData.cpp, and main.cpp. Everything runs fine, but when I try to add another public int variable into routeData.h and set it's value in main.cpp to use in routeData.cpp, my program crashes as soon as it starts up - I can't figure out why! I seem to be doing the same thing with a different int variable that I declared in routeData.h and initiated in main.cpp. Here is my code:

    routeData.h
    Code:
    #ifndef ROUTE
    #define ROUTE
    #include <set>
    #include <list>
    
    using namespace std;
    
    typedef set<int>		    iSet;
    typedef list<int> 		    iLst;
    typedef set<int>::iterator	iSetPtr;
    typedef list<int>::iterator	iLstPtr;
    
    class routeData
    {
        public:
    	
        	int readRouteData(istream & inSource);
        
        	int distance(int first, int second);
        
        	int distance(iLst route);
        
        	iLst bestRoute(iLst done, iSet left);
    
            int **myLocations;
            int totalLocations;
            int shortestDistance; // problem with this var
            iLst finalRoute;
            iLst holder;
            iSet locs;
    };
    
    #endif
    routeData.cpp
    Code:
    #include <iostream>
    #include <set>
    #include <list>
    #include <cstdlib>
    #include <string>
    #include <sstream>
    #include <ctype.h>
    #include "routeData.h"
    
    using namespace std;
    
    iLst routeData::bestRoute(iLst done, iSet left)
    {
        int setSize;
        iSetPtr setIterator;
        iSetPtr tempPtr;
        iLst finalList;
    
        setSize = left.size();
    
        if(setSize == 0)
        {
            cout << "PERMUTATION SEQUENCE FINISHED.\n";
            cout << "->Distance of final permutation: ";
            cout << distance(done) << "\n\n";
            cout << "Comparison: distance of done = " << distance(done) << ", distance of shortestDistance = " << shortestDistance << "\n";
            if((distance(done) < shortestDistance) || (shortestDistance == -1))
            {
                cout << "Distance of done is < shortestDistance\n";
                shortestDistance = distance(done);
            }
            cout << "SHORTEST CURRENT DISTANCE: " << shortestDistance << "\n";
        }
    
                
        for(setIterator = left.begin(); setIterator != left.end(); setIterator++)
        {
            cout << "Iterator: " << *setIterator << "\n";
    
            iLst tempList = done;
            iSet tempSet = left;
    
            tempSet.erase(*setIterator);
            tempList.push_back(*setIterator);
    
            iLstPtr tempLstPtr;
            cout << "[ ";
            for(tempLstPtr = tempList.begin(); tempLstPtr != tempList.end(); tempLstPtr++)
            {
                cout << *tempLstPtr << " ";
            }
            cout << "]\t";
    
            iSetPtr tempPtr;
            cout << "[ ";
            for(tempPtr = tempSet.begin(); tempPtr != tempSet.end(); tempPtr++)
            {
                cout << *tempPtr << " ";
            }
            cout << "]\n";
            
    
            cout << "Size of list: " << tempList.size() << "\n";
            cout << "Size of set: " << tempSet.size() << "\n";
            cout << "Total distance of this list: " << distance(tempList) << "\n\n";
                    
            bestRoute(tempList, tempSet);
                
        }
       
        
        return done;
    }
    main.cpp
    Code:
    #include <iostream>
    #include <set>
    #include <list>
    #include <cstdlib>
    #include "routeData.h"
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        routeData myRoute;
        int rrdResult;
    
        myRoute.myLocations = new int*[myRoute.totalLocations];
    
        for(int i = 0; i < 10; i++)
        {
            myRoute.myLocations[i] = new int[myRoute.totalLocations];
        }
    
        rrdResult = myRoute.readRouteData(cin);
    
        if(rrdResult < 0)
        {
            cerr << "Bad input on line " << rrdResult;
            exit(1);
        }
    
        for(int i = 1; i <= myRoute.totalLocations; i++)
        {
            if(i == 1)
            {
                myRoute.holder.push_back(i);
            }
            else
            {
                myRoute.locs.insert(i);
            }
        }
    
        myRoute.shortestDistance = -1;
    
        myRoute.finalRoute = myRoute.bestRoute(myRoute.holder, myRoute.locs);
    
        cout << "----------------------------------\n";
        cout << "DISTANCE OF LAST RETURNED ROUTE: ";
        cout << myRoute.distance(myRoute.finalRoute) << "\n\n";
    
        system("Pause");
        return 0;
    }
    I have no idea why this makes my program crash. All it says is:

    This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.
    Any ideas?
    Last edited by Beowolf; 10-31-2007 at 02:35 AM.
    "I don't fail - I succeed at finding things that don't work"
    Website Promotion Techniques @AbstractPromotion.com

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. char vs int - program crash!!
    By Goldrak in forum C++ Programming
    Replies: 4
    Last Post: 04-07-2006, 08:17 PM
  2. My program causes my compiler to crash
    By carolsue2 in forum C++ Programming
    Replies: 4
    Last Post: 04-06-2006, 04:06 AM
  3. Need help with my program...
    By Noah in forum C Programming
    Replies: 2
    Last Post: 03-11-2006, 07:49 PM
  4. sprintf() giving crash to program!!
    By maven in forum C Programming
    Replies: 4
    Last Post: 01-01-2006, 12:26 PM
  5. My program, anyhelp
    By @licomb in forum C Programming
    Replies: 14
    Last Post: 08-14-2001, 10:04 PM