"Sumit Rajan" <su*********@gmail.com> wrote in message
news:3r************@individual.net...
Could you please post some code that demonstates your problem? Please
remember to keep it minimal and compile-able:
http://www.parashift.com/c++-faq-lit...t.html#faq-5.8
I get error Unhandled exception at 0x00415329 in ClientTestClasses.exe:
0xC0000005: Access violation reading location 0x000002c4. It's something to
do with the way I'm filling and/or accessing the vector.
I need to get RequestCall() to return a call from the call_list vector.
/* Manager.cpp */
void Manager::Login()
{
proxy.FillVectors(); /* fills the vector in ClientProxy */
proxy.RequestCall(current_campaign); /* crash occurs in this method */
}
/* ClientProxy.h */
#ifndef __CLIENTPROXY__
#define __CLIENTPROXY__
#include "Call.h"
#include "Campaign.h"
#include "User.h"
#include "vector"
using namespace std;
class ClientProxy
{
public:
ClientProxy();
User Login(const std::string& sname, const std::string& ip, int pn);
Campaign RequestCampaigns(User u);
Call RequestCall(Campaign c);
bool MarshallRequest();
void FillVectors();
private:
/* Test variables below */
Call GetNextCall();
int call_counter;
/* Real vars */
Call current_call;
Campaign current_campaign;
User user;
vector<Campaign> campaigns;
vector<Call> call_list;
};
/* END CLASS DEFINITION ClientProxy */
#endif
/* ClientProxy.cpp */
#include "ClientProxy.h"
#include "Call.h"
#include <vector>
ClientProxy::ClientProxy()
{
}
void ClientProxy::FillVectors()
{
printf("\n-FillVectors()");
vector<Campaign> campaigns(5);
campaigns[0] = Campaign(1, "Camp1");
campaigns[1] = Campaign(2, "Camp2");
campaigns[2] = Campaign(3, "Camp3");
campaigns[3] = Campaign(4, "Camp4");
campaigns[4] = Campaign(5, "Camp5");
vector<Call> call_list(5);
call_list[0] = Call(1,"01215755533","","Dave Jones","Jones
Construction","123 Main Street","","","");
call_list[1] = Call(2,"01215731432","","Steve Martin","Martins
Butchers","10 West Street","","","");
call_list[2] = Call(3,"01315435467","","Phil Babb","BB Insurance","3 North
Street","","","");
call_list[3] = Call(4,"01415772234","","Tony Van Bronkel","GVK","12 South
Street","","","");
call_list[4] = Call(5,"01518126534","","Steve Alabaster","MRM","13 High
Street","","","");
call_counter = 0;
//printf(call_list[0].GetName().c_str());
}
User ClientProxy::Login(const std::string& sname, const std::string& ip, int
pn)
{
user.SetName(sname);
user.SetUserID(1);
//call_list.insert(sname);
return user;
}
Campaign ClientProxy::RequestCampaigns(User u)
{
return current_campaign;
}
Call ClientProxy::RequestCall(Campaign c)
{
//current_call = GetNextCall();
current_call = call_list[3]; /* ERROR BREAKS HERE */
printf("\n");
printf("-ClientProxy.RequestCall()");
printf(current_call.GetName().c_str());
printf("-eof");
return current_call;
}
/* This is a temporary method to retrieve the contents of the call_list
vector */
Call ClientProxy::GetNextCall() {
Call ctemp = call_list[call_counter];
call_counter++;
return ctemp;
}
bool ClientProxy::MarshallRequest()
{
return 1;
}