Кажется, что при возврате я получаю коррумпированные значения. Изображение иллюстрирует вывод цикла.Метод, возвращающий поврежденные значения
// loop
float *bo = getBoundaries(); // this calls the method displayed below
cout << "\ngetDisplay: " << bo[0];
// loop
float* getBoundaries()
{
cout << "\ngetB: " << x1; // this displays the correct value
float boundaries[4] = {};
boundaries[0] = x1;
boundaries[1] = x2;
boundaries[2] = y1;
boundaries[3] = y2;
cout << "\nfinal: " << boundaries[0]; // this also displays the correct value
return boundaries;
}
Это случилось, когда я был переход от отладки в режим выпуска, однако он теперь влияет как отладки и выпуска.
Скомпилируйте свои программы, все предупреждения будут включены, вы должны получить предупреждение о возврате ссылки на временную. – shuttle87
Используйте 'std :: vector' вместо 'float *', и ваша проблема исчезнет. –
PaulMcKenzie
Или, для небольшого массива фиксированного размера, 'std :: array'. –