Есть ли причина, по которой программа на С ++, которая отлично работает в 64-битной системе, дает сбой в 32-битной системе? У меня есть программа, проверенная на 2 серверах. один 64 бит и другой 32 бит. Программа не имеет специальных битовых команд. Первоначально это работало в обоих, пока я не сделал chage, добавил структуру и назвал это. Программа аварийно завершилась, когда этот структурный объект был вызван впервые. Но если я распечатаю значение элемента 1 строки до его сбоя, значения там есть. Кстати, под значением я подразумеваю целые числа, а не указатели или другие забавные вещи.
Я попытался инициировать эти целые числа как uint32_t и такие эксперименты. Но зайти в тупик.
структура такова
struct info {
int id1, id2;
string test;
};
map<string, info> allInfo
vector<string> temp;
/* temp populated */
info details = {atoi(temp[0].c_str()),atoi(temp[2].c_str()),temp[3].c_str()};
allInfo[temp[1].c_str()] = details;
/*somewhere after this it is accessed */
map<string, info>::iterator i;
/* printing the values here seems ok.. */
cout << (*i).second.id1 << endl << (*i).second.id2 << endl;
string first_id = "idOne : " + (*i).second.id1;
string second_id = "idTwo: " + (*i).second.id2;