Hi all;
I have a problem when inserting an element to a vector. All I want is
reading some data from a file and putting them into a vector. But the
program is crashing after pushing a data which has string value. I
really do not understand why push_back() function is trying to remove
previously inserted data.
Thanks for any help
yatko
// program
#include <iostream>
#include <fstream>
#include <vector>
#include <map>
#include <cstdlib>
#include <string.h>
class VLProperty
{
public:
enum Aircraft{
BO105,
F16
};
enum Type{
INT,
BOOL,
LONG,
FLOAT,
DOUBLE,
STRING,
UNSPECIFIED
};
};
struct VLPropertyData {
unsigned id;
// While the type isn't transmitted, it is needed for the destructor
VLProperty::Typ e type;
union{
int int_value;
float float_value;
char* string_value;
};
//std::string string_value;
VLPropertyData( )
{
std::cout << "new data\n";
}
~VLPropertyData () {
if ((type == VLProperty::STR ING) || (type ==
VLProperty::UNS PECIFIED))
{
std::cout << string_value << " is deleted" << std::endl;
delete [] string_value;
}
}
};
class VLAIMultiplayer ;
class VLAIManager
{
public:
static std::string sAircraftIdList[];
static std::map<std::s tring,std::stri ngsAircraftMode lNameMap;
/// maps from the aircraft string to the VLPropertyData vector
typedef std::map< std::string, std::vector <VLPropertyData >* >
ModelPropertyDa taMap;
//static ModelPropertyDa taMap sModelPropertyD ataMap;
static ModelPropertyDa taMap sAircraftProper tyDataMap;
VLAIManager();
~VLAIManager();
VLAIMultiplayer * addMultiplayer( const std::string& callsign, const
std::string& aircraft);
std::vector <VLPropertyData >
addProperties(c onst std::string& aircraft);
private:
/// maps from the callsign string to the VLAIMultiplayer
typedef std::map<std::s tring, VLAIMultiplayer * MultiPlayerMap;
MultiPlayerMap mMultiPlayerMap ;
};
struct VLExternalMotio nInfo;
class VLMultiplayMgr
{
public:
struct PropertyDesc{
PropertyDesc()
{};
PropertyDesc(co nst char* name, VLProperty::Typ e type)
{
this->name = name;
this->type = type;
};
~PropertyDesc()
{};
const char* name;
VLProperty::Typ e type;
};
typedef std::map<unsign ed int, PropertyDescIdP ropertyDescMap;
static IdPropertyDescM ap sIdPropertyDesc Map;
static void Init();
private:
/// maps from the callsign string to the FGAIMultiplayer
typedef std::map<std::s tring, VLAIMultiplayer * MultiPlayerMap;
MultiPlayerMap mMultiPlayerMap ;
};
std::string VLAIManager::sA ircraftIdList [] = {
"",
"t38",
"bo105",
"F16",
"b1900d"
};
VLMultiplayMgr: :IdPropertyDesc Map VLMultiplayMgr: :sIdPropertyDes cMap =
VLMultiplayMgr: :IdPropertyDesc Map();
void
VLMultiplayMgr: :Init()
{
sIdPropertyDesc Map[100] = VLMultiplayMgr: :PropertyDesc(" surface-
positions/left-aileron-pos-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[101] = VLMultiplayMgr: :PropertyDesc(" surface-
positions/right-aileron-pos-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[102] = VLMultiplayMgr: :PropertyDesc(" surface-
positions/elevator-pos-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[103] = VLMultiplayMgr: :PropertyDesc(" surface-
positions/rudder-pos-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[104] = VLMultiplayMgr: :PropertyDesc(" surface-
positions/flap-pos-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[105] = VLMultiplayMgr: :PropertyDesc(" surface-
positions/speedbrake-pos-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[106] = VLMultiplayMgr: :PropertyDesc(" gear/tailhook/
position-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[107] = VLMultiplayMgr: :PropertyDesc(" gear/
launchbar/position-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[108] = VLMultiplayMgr: :PropertyDesc(" gear/
launchbar/state", VLProperty::STR ING);
sIdPropertyDesc Map[109] = VLMultiplayMgr: :PropertyDesc(" gear/
launchbar/holdback-position-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[110] = VLMultiplayMgr: :PropertyDesc(" canopy/
position-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[200] = VLMultiplayMgr: :PropertyDesc(" gear/gear[0]/
compression-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[201] = VLMultiplayMgr: :PropertyDesc(" gear/gear[0]/
position-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[210] = VLMultiplayMgr: :PropertyDesc(" gear/gear[1]/
compression-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[211] = VLMultiplayMgr: :PropertyDesc(" gear/gear[1]/
position-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[220] = VLMultiplayMgr: :PropertyDesc(" gear/gear[2]/
compression-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[221] = VLMultiplayMgr: :PropertyDesc(" gear/gear[2]/
position-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[230] = VLMultiplayMgr: :PropertyDesc(" gear/gear[3]/
compression-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[231] = VLMultiplayMgr: :PropertyDesc(" gear/gear[3]/
position-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[240] = VLMultiplayMgr: :PropertyDesc(" gear/gear[4]/
compression-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[241] = VLMultiplayMgr: :PropertyDesc(" gear/gear[4]/
position-norm", VLProperty::FLO AT);
sIdPropertyDesc Map[300] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[0]/n1", VLProperty::FLO AT);
sIdPropertyDesc Map[301] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[0]/n2", VLProperty::FLO AT);
sIdPropertyDesc Map[302] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[0]/rpm", VLProperty::FLO AT);
sIdPropertyDesc Map[310] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[1]/n1", VLProperty::FLO AT);
sIdPropertyDesc Map[311] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[1]/n2", VLProperty::FLO AT);
sIdPropertyDesc Map[312] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[1]/rpm", VLProperty::FLO AT);
sIdPropertyDesc Map[320] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[2]/n1", VLProperty::FLO AT);
sIdPropertyDesc Map[321] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[2]/n2", VLProperty::FLO AT);
sIdPropertyDesc Map[322] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[2]/rpm", VLProperty::FLO AT);
sIdPropertyDesc Map[330] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[3]/n1", VLProperty::FLO AT);
sIdPropertyDesc Map[331] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[3]/n2", VLProperty::FLO AT);
sIdPropertyDesc Map[332] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[3]/rpm", VLProperty::FLO AT);
sIdPropertyDesc Map[340] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[4]/n1", VLProperty::FLO AT);
sIdPropertyDesc Map[341] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[4]/n2", VLProperty::FLO AT);
sIdPropertyDesc Map[342] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[4]/rpm", VLProperty::FLO AT);
sIdPropertyDesc Map[350] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[5]/n1", VLProperty::FLO AT);
sIdPropertyDesc Map[351] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[5]/n2", VLProperty::FLO AT);
sIdPropertyDesc Map[352] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[5]/rpm", VLProperty::FLO AT);
sIdPropertyDesc Map[360] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[6]/n1", VLProperty::FLO AT);
sIdPropertyDesc Map[361] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[6]/n2", VLProperty::FLO AT);
sIdPropertyDesc Map[362] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[6]/rpm", VLProperty::FLO AT);
sIdPropertyDesc Map[370] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[7]/n1", VLProperty::FLO AT);
sIdPropertyDesc Map[371] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[7]/n2", VLProperty::FLO AT);
sIdPropertyDesc Map[372] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[7]/rpm", VLProperty::FLO AT);
sIdPropertyDesc Map[380] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[8]/n1", VLProperty::FLO AT);
sIdPropertyDesc Map[381] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[8]/n2", VLProperty::FLO AT);
sIdPropertyDesc Map[382] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[8]/rpm", VLProperty::FLO AT);
sIdPropertyDesc Map[390] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[9]/n1", VLProperty::FLO AT);
sIdPropertyDesc Map[391] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[9]/n2", VLProperty::FLO AT);
sIdPropertyDesc Map[392] = VLMultiplayMgr: :PropertyDesc(" engines/
engine[9]/rpm", VLProperty::FLO AT);
sIdPropertyDesc Map[800] = VLMultiplayMgr: :PropertyDesc(" rotors/main/
rpm", VLProperty::FLO AT);
sIdPropertyDesc Map[801] = VLMultiplayMgr: :PropertyDesc(" rotors/tail/
rpm", VLProperty::FLO AT);
sIdPropertyDesc Map[810] = VLMultiplayMgr: :PropertyDesc(" rotors/main/
blade[0]/position-deg", VLProperty::FLO AT);
sIdPropertyDesc Map[811] = VLMultiplayMgr: :PropertyDesc(" rotors/main/
blade[1]/position-deg", VLProperty::FLO AT);
sIdPropertyDesc Map[812] = VLMultiplayMgr: :PropertyDesc(" rotors/main/
blade[2]/position-deg", VLProperty::FLO AT);
sIdPropertyDesc Map[813] = VLMultiplayMgr: :PropertyDesc(" rotors/main/
blade[3]/position-deg", VLProperty::FLO AT);
sIdPropertyDesc Map[820] = VLMultiplayMgr: :PropertyDesc(" rotors/main/
blade[0]/flap-deg", VLProperty::FLO AT);
sIdPropertyDesc Map[821] = VLMultiplayMgr: :PropertyDesc(" rotors/main/
blade[1]/flap-deg", VLProperty::FLO AT);
sIdPropertyDesc Map[822] = VLMultiplayMgr: :PropertyDesc(" rotors/main/
blade[2]/flap-deg", VLProperty::FLO AT);
sIdPropertyDesc Map[823] = VLMultiplayMgr: :PropertyDesc(" rotors/main/
blade[3]/flap-deg", VLProperty::FLO AT);
sIdPropertyDesc Map[830] = VLMultiplayMgr: :PropertyDesc(" rotors/tail/
blade[0]/position-deg", VLProperty::FLO AT);
sIdPropertyDesc Map[831] = VLMultiplayMgr: :PropertyDesc(" rotors/tail/
blade[1]/position-deg", VLProperty::FLO AT);
sIdPropertyDesc Map[900] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/tow/length", VLProperty::FLO AT);
sIdPropertyDesc Map[901] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/tow/elastic-constant", VLProperty::FLO AT);
sIdPropertyDesc Map[902] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/tow/weight-per-m-kg-m", VLProperty::FLO AT);
sIdPropertyDesc Map[903] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/tow/dist", VLProperty::FLO AT);
sIdPropertyDesc Map[904] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/tow/connected-to-property-node", VLProperty::BOO L);
sIdPropertyDesc Map[905] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/tow/connected-to-ai-or-mp-callsign", VLProperty::STR ING);
sIdPropertyDesc Map[906] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/tow/brake-force", VLProperty::FLO AT);
sIdPropertyDesc Map[907] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/tow/end-force-x", VLProperty::FLO AT);
sIdPropertyDesc Map[908] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/tow/end-force-y", VLProperty::FLO AT);
sIdPropertyDesc Map[909] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/tow/end-force-z", VLProperty::FLO AT);
sIdPropertyDesc Map[930] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/is-slave", VLProperty::BOO L);
sIdPropertyDesc Map[931] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/speed-in-tow-direction", VLProperty::FLO AT);
sIdPropertyDesc Map[932] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/open", VLProperty::BOO L);
sIdPropertyDesc Map[933] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/local-pos-x", VLProperty::FLO AT);
sIdPropertyDesc Map[934] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/local-pos-y", VLProperty::FLO AT);
sIdPropertyDesc Map[935] = VLMultiplayMgr: :PropertyDesc(" sim/hitches/
aerotow/local-pos-z", VLProperty::FLO AT);
sIdPropertyDesc Map[1001] = VLMultiplayMgr: :PropertyDesc(" controls/
flight/slats", VLProperty::FLO AT);
sIdPropertyDesc Map[1002] = VLMultiplayMgr: :PropertyDesc(" controls/
flight/speedbrake", VLProperty::FLO AT);
sIdPropertyDesc Map[1003] = VLMultiplayMgr: :PropertyDesc(" controls/
flight/spoilers", VLProperty::FLO AT);
sIdPropertyDesc Map[1004] = VLMultiplayMgr: :PropertyDesc(" controls/
gear/gear-down", VLProperty::FLO AT);
sIdPropertyDesc Map[1005] = VLMultiplayMgr: :PropertyDesc(" controls/
lighting/nav-lights", VLProperty::FLO AT);
sIdPropertyDesc Map[1006] = VLMultiplayMgr: :PropertyDesc(" controls/
armament/station[0]/jettison-all", VLProperty::BOO L);
sIdPropertyDesc Map[1100] = VLMultiplayMgr: :PropertyDesc(" sim/model/
variant", VLProperty::INT );
sIdPropertyDesc Map[10001] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/transmission-freq-hz", VLProperty::STR ING);
sIdPropertyDesc Map[10002] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/chat", VLProperty::STR ING);
sIdPropertyDesc Map[10100] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/string[0]", VLProperty::STR ING);
sIdPropertyDesc Map[10101] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/string[1]", VLProperty::STR ING);
sIdPropertyDesc Map[10102] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/string[2]", VLProperty::STR ING);
sIdPropertyDesc Map[10103] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/string[3]", VLProperty::STR ING);
sIdPropertyDesc Map[10104] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/string[4]", VLProperty::STR ING);
sIdPropertyDesc Map[10105] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/string[5]", VLProperty::STR ING);
sIdPropertyDesc Map[10106] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/string[6]", VLProperty::STR ING);
sIdPropertyDesc Map[10107] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/string[7]", VLProperty::STR ING);
sIdPropertyDesc Map[10108] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/string[8]", VLProperty::STR ING);
sIdPropertyDesc Map[10109] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/string[9]", VLProperty::STR ING);
sIdPropertyDesc Map[10200] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/float[0]", VLProperty::FLO AT);
sIdPropertyDesc Map[10201] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/float[1]", VLProperty::FLO AT);
sIdPropertyDesc Map[10202] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/float[2]", VLProperty::FLO AT);
sIdPropertyDesc Map[10203] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/float[3]", VLProperty::FLO AT);
sIdPropertyDesc Map[10204] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/float[4]", VLProperty::FLO AT);
sIdPropertyDesc Map[10205] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/float[5]", VLProperty::FLO AT);
sIdPropertyDesc Map[10206] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/float[6]", VLProperty::FLO AT);
sIdPropertyDesc Map[10207] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/float[7]", VLProperty::FLO AT);
sIdPropertyDesc Map[10208] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/float[8]", VLProperty::FLO AT);
sIdPropertyDesc Map[10209] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/float[9]", VLProperty::FLO AT);
sIdPropertyDesc Map[10300] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/int[0]", VLProperty::INT );
sIdPropertyDesc Map[10301] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/int[1]", VLProperty::INT );
sIdPropertyDesc Map[10302] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/int[2]", VLProperty::INT );
sIdPropertyDesc Map[10303] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/int[3]", VLProperty::INT );
sIdPropertyDesc Map[10304] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/int[4]", VLProperty::INT );
sIdPropertyDesc Map[10305] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/int[5]", VLProperty::INT );
sIdPropertyDesc Map[10306] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/int[6]", VLProperty::INT );
sIdPropertyDesc Map[10307] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/int[7]", VLProperty::INT );
sIdPropertyDesc Map[10308] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/int[8]", VLProperty::INT );
sIdPropertyDesc Map[10309] = VLMultiplayMgr: :PropertyDesc(" sim/
multiplay/generic/int[9]", VLProperty::INT );
}
VLAIManager::Mo delPropertyData Map
VLAIManager::sA ircraftProperty DataMap =
VLAIManager::Mo delPropertyData Map();
std::map<std::s tring,std::stri ng>
VLAIManager::sA ircraftModelNam eMap =
std::map<std::s tring,std::stri ng>();
std::vector<VLP ropertyData>
VLAIManager::ad dProperties(con st std::string& aircraft)
{
if (0 < sAircraftProper tyDataMap.count (aircraft))
return sAircraftProper tyDataMap[aircraft][1];
std::vector <VLPropertyData >* constantPropert ies;
std::vector <VLPropertyData >* varyingProperti es;
VLPropertyData propertyData;
std::string modelName, id, value, cv;
//VLPropertyData* ptr;
//size_t pos = fileName.find('/');
//fileName = fileName.substr (pos + 1, fileName.find('/', pos+1) - pos
- 1) + ".txt";
std::ifstream myfile(("./data/" + aircraft + ".txt").data()) ;
std::cout << __FILE__ << ":" << __LINE__ << " " << aircraft << "\n";
sAircraftProper tyDataMap[aircraft] = new std::vector
<VLPropertyData >[2];
constantPropert ies = &sAircraftPrope rtyDataMap[aircraft][0];
varyingProperti es = &sAircraftPrope rtyDataMap[aircraft][1];
if (myfile.is_open ())
{
myfile >modelName;
sAircraftModelN ameMap[aircraft] = modelName;
while (! myfile.eof() )
{
//ptr = new VLPropertyData;
myfile >id >value >cv;
propertyData.id = atoi(id.data()) ;
if (VLMultiplayMgr ::sIdPropertyDe scMap.count(pro pertyData.id) 0)
{
propertyData.ty pe =
VLMultiplayMgr: :sIdPropertyDes cMap[propertyData.id].type;;
// How we decode the remainder of the property depends on the type
switch (propertyData.t ype) {
case VLProperty::INT :
case VLProperty::BOO L:
case VLProperty::LON G:
propertyData.in t_value = atoi(value.data ());
//cout << pData->int_value << "\n";
break;
case VLProperty::FLO AT:
case VLProperty::DOU BLE:
propertyData.fl oat_value = atof(value.data ());
//cout << pData->float_value << "\n";
break;
case VLProperty::STR ING:
case VLProperty::UNS PECIFIED:
//propertyData.st ring_value = value;
//propertyData.st ring_value = (char*) (new
std::string(val ue.c_str()))->c_str();
int len;
len = value.length();
propertyData.st ring_value = new char[len + 1];
strcpy(property Data.string_val ue, value.data());
propertyData.st ring_value[len] = '\0';
//std::cout << propertyData.st ring_value << "\n";
break;
default:
propertyData.fl oat_value = atof(value.data ());
std::cout << "Unknown Prop type " << propertyData.id << " " <<
propertyData.ty pe << "\n";
break;
}
if (cv == "c")
constantPropert ies->push_back(prop ertyData);
else if (cv == "v")
varyingProperti es->push_back(prop ertyData);
else
std::cout << "Property type c|v error\n";
}
else
{
// We failed to find the property. We'll try the next packet
immediately.
//cout << " Unknown\n";
}
myfile >cv;
}
myfile.close();
}
else
std::cout << __FILE__ << ":" << __LINE__ << " "<< "Unable to open
file\n";
std::cout << __FILE__ << ":" << __LINE__ << " " << aircraft << "\n";
std::vector<VLP ropertyDatavar = sAircraftProper tyDataMap[aircraft]
[1];
std::cout << sAircraftProper tyDataMap.count (aircraft) << "\n";
return var;
}
VLAIManager::VL AIManager()
{
}
VLAIManager::~V LAIManager()
{
}
int
main()
{
VLAIManager* mgr = new VLAIManager;
VLMultiplayMgr: :Init();
mgr->addProperties( "bo105");
std::string name ("oktay");
std::cout << name.length()<< ":" << name.size() << "\n";
std::cout << "ok\n";
return 0;
}
//data file
Aircraft/bo105/Models/bo105.xml
10002 Hello c sim/multiplay/chat
10300 1 c sim/multiplay/generic/
int[0]
10001 118500000 c sim/multiplay/transmission-freq-hz
10100 Yellow_MedEvac c sim/multiplay/generic/string[0]
10101 red-cross c sim/multiplay/generic/string[1]
// output of program
new data
.../main.cpp:321 bo105
Hello is deleted
is deleted
*** glibc detected *** /home/mvms/workspace/reading/Debug/reading:
double free or corruption (fasttop): 0x0000000001f23 2a0 ***
======= Backtrace: =========
/lib64/libc.so.6[0x33c9a78158]
/lib64/libc.so.6(cfree +0x76)[0x33c9a7a796]
/home/mvms/workspace/reading/Debug/reading[0x408ed0]
/home/mvms/workspace/reading/Debug/reading[0x408ee7]
/home/mvms/workspace/reading/Debug/reading[0x408f04]
/home/mvms/workspace/reading/Debug/reading[0x408f36]
/home/mvms/workspace/reading/Debug/reading[0x40b666]
/home/mvms/workspace/reading/Debug/reading[0x40b73c]
/home/mvms/workspace/reading/Debug/reading[0x402137]
/home/mvms/workspace/reading/Debug/reading[0x4069d5]
/lib64/libc.so.6(__lib c_start_main+0x fa)[0x33c9a1e32a]
/home/mvms/workspace/reading/Debug/reading(__gxx_p ersonality_v0+0 x91)
[0x4017e9]
======= Memory map: ========
00400000-00411000 r-xp 00000000 fd:00
295669 /home/mvms/workspace/reading/Debug/
reading
00610000-00611000 rw-p 00010000 fd:00
295669 /home/mvms/workspace/reading/Debug/
reading
01f1f000-01f40000 rw-p 01f1f000 00:00
0 [heap]
33c8800000-33c881d000 r-xp 00000000 fd:00
2179394 /lib64/ld-2.8.so
33c8a1c000-33c8a1d000 r--p 0001c000 fd:00
2179394 /lib64/ld-2.8.so
33c8a1d000-33c8a1e000 rw-p 0001d000 fd:00
2179394 /lib64/ld-2.8.so
33c9a00000-33c9b62000 r-xp 00000000 fd:00
2179395 /lib64/libc-2.8.so
33c9b62000-33c9d62000 ---p 00162000 fd:00
2179395 /lib64/libc-2.8.so
33c9d62000-33c9d66000 r--p 00162000 fd:00
2179395 /lib64/libc-2.8.so
33c9d66000-33c9d67000 rw-p 00166000 fd:00
2179395 /lib64/libc-2.8.so
33c9d67000-33c9d6c000 rw-p 33c9d67000 00:00 0
33c9e00000-33c9e84000 r-xp 00000000 fd:00
2179407 /lib64/libm-2.8.so
33c9e84000-33ca083000 ---p 00084000 fd:00
2179407 /lib64/libm-2.8.so
33ca083000-33ca084000 r--p 00083000 fd:00
2179407 /lib64/libm-2.8.so
33ca084000-33ca085000 rw-p 00084000 fd:00
2179407 /lib64/libm-2.8.so
33d0200000-33d0216000 r-xp 00000000 fd:00
2179408 /lib64/libgcc_s-4.3.0-20080428.so.1
33d0216000-33d0415000 ---p 00016000 fd:00
2179408 /lib64/libgcc_s-4.3.0-20080428.so.1
33d0415000-33d0416000 rw-p 00015000 fd:00
2179408 /lib64/libgcc_s-4.3.0-20080428.so.1
33d3e00000-33d3eee000 r-xp 00000000 fd:00
2602470 /usr/lib64/libstdc++.so.6. 0.10
33d3eee000-33d40ee000 ---p 000ee000 fd:00
2602470 /usr/lib64/libstdc++.so.6. 0.10
33d40ee000-33d40f5000 r--p 000ee000 fd:00
2602470 /usr/lib64/libstdc++.so.6. 0.10
33d40f5000-33d40f7000 rw-p 000f5000 fd:00
2602470 /usr/lib64/libstdc++.so.6. 0.10
33d40f7000-33d410a000 rw-p 33d40f7000 00:00 0
7f9f40000000-7f9f40021000 rw-p 7f9f40000000 00:00 0
7f9f40021000-7f9f44000000 ---p 7f9f40021000 00:00 0
7f9f449f6000-7f9f449f9000 rw-p 7f9f449f6000 00:00 0
7f9f44a14000-7f9f44a17000 rw-p 7f9f44a14000 00:00 0
7fff4ca01000-7fff4ca16000 rw-p 7ffffffea000 00:00
0 [stack]
7fff4cbfe000-7fff4cc00000 r-xp 7fff4cbfe000 00:00
0 [vdso]
ffffffffff60000 0-ffffffffff60100 0 r-xp 00000000 00:00
0 [vsyscall]