![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Svved |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 20.10.2012 Пользователь №: 3571 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Нужна помощь, при сборке, все работает, но потом после ввода второго-третьего числа, окно закрывается. Кто подскажет, что делать?
Вот сама функция кода, из-за которой вылетает.
|
|
|
![]() |
Гость_Гость_* |
![]()
Сообщение
#2
|
Гости ![]() |
1) введи новую переменную
Number = number; и ее используй как параметр цикла while 2) в циклах сложные выражения (result.append(QString("%1")...) могут плохо работать. Разведи все эти сложности по отдельным переменным: первая - получает строку из argv, кстати, стоило бы проверить на количество параметров командной строки вторая - делает промежуточну строку и т.д. В целом вылет из программы после 2-3 нормальных срабатываний получется из-за некорректрой работы с памятью или вылетом за границы массивов ![]() Нужна помощь, при сборке, все работает, но потом после ввода второго-третьего числа, окно закрывается. Кто подскажет, что делать? Вот сама функция кода, из-за которой вылетает. QString MainWindow::Binary(int number) { int N=0; int *B = new int[N]; while (number!=0) { N++; B[N-1]=number%2; number/=2; } QString result; for (int i=N-1;i>=0;i--) { result.append(QString("%1").arg(B[i])); } return result; } ui->lineEdit_2->setText(Binary(а)); |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 13.7.2025, 22:10 |