Форум программистов, компьютерный форум CyberForum.ru

Повреждение кучи - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рекурсивная функция вычисления разрядности числа в двоичном виде http://www.cyberforum.ru/cpp-beginners/thread673016.html
Есть неработающий код: #include <iostream> using namespace std; unsigned char capacity (unsigned char number) { if (number == 0 || number == 1) return 1;
C++ Не могу собрать проект в exe (MVS2012) Использую mvs2012. Никак не могу понять, как собрать проект в готовый exe. Нажимал там всякие компиляции, сборки, отладку в режиме релиза. Потом заходил в папку компилятора в моих документах. Там искал exe своей проги в папках дебаг и релиз. Конечно на моем компе они(exe) запускаются. Но как только передаю этот экзешник кому-нибудь из друзей для проверки у них на компе - не запускается. Чувство,... http://www.cyberforum.ru/cpp-beginners/thread673014.html
C++ Файлы
freopen("rpq.in", "r", stdin); freopen("rpq.out", "w", stdout); К какому каталогу будет обращаться программа Vc++
C++ Время выполнения
Скажите, как я могу сравнить время выполнения 2 функций? Желательно сразу готовый код.
C++ Сортировка Шелла http://www.cyberforum.ru/cpp-beginners/thread673005.html
Скажите пожалуйста какой из вариантов лучше использовать для реализации сортировки Шелла? Второй вариант меня смущает тем, что там больше функций? Это сильно замедлит работу по сравнению с первым вариантом? 1 вариант: int increment(long inc, long size) { // inc массив, в которые заносятся инкременты // size размерность этого массива int p1, p2, p3, s;
C++/CLI WinForms Что значит эта строка this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);только пожалуйста расскажите подробно.Заранее спасибо подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт CЭксперт С++
12697 / 7171 / 800
Регистрация: 27.09.2012
Сообщений: 17,681
Записей в блоге: 2
Завершенные тесты: 1
17.10.2012, 05:00     Повреждение кучи
1)
C++
1
db = ( DATABASE ) realloc ( db, ( ++fieldCnt ) * sizeof ( FIELD ) );
Здесь db - это временный объект. В результате после первого вызова у Вас создается новый кусок памяти, а старый(который создавался в CreateTable()) удаляется, но указатель в функции main будет указывать на старый кусок.
сам указатель db(локальный) выделен на стеке и уничтожается после выхода из области видимости.
Чтобы не менять код внутри функции, передавайте этот параметр по ссылке:
void TeamResult::AddField ( DATABASE &db )

2)"%f" - это float, а у Вас double, поэтому используйте "%lf"
C++
1
scanf ( "%f", &( db + fieldCnt - 1 )->plan );
 
Текущее время: 08:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru