crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Svved
  опции профиля:
сообщение 21.10.2012, 14:11
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 20.10.2012
Пользователь №: 3571

Спасибо сказали: 0 раз(а)




Репутация:   0  


Нужна помощь, при сборке, все работает, но потом после ввода второго-третьего числа, окно закрывается. Кто подскажет, что делать?
Вот сама функция кода, из-за которой вылетает.


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(а));
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Гость_Гость_*
сообщение 21.10.2012, 15:22
Сообщение #2





Гости








    


1) введи новую переменную
Number = number;
и ее используй как параметр цикла while
2) в циклах сложные выражения (result.append(QString("%1")...) могут плохо работать.
Разведи все эти сложности по отдельным переменным:
первая - получает строку из argv, кстати, стоило бы проверить на количество параметров командной строки
вторая - делает промежуточну строку и т.д.
В целом вылет из программы после 2-3 нормальных срабатываний получется из-за некорректрой работы с памятью или вылетом за границы массивов :rolleyes:

Цитата(Svved @ 21.10.2012, 14:11) *
Нужна помощь, при сборке, все работает, но потом после ввода второго-третьего числа, окно закрывается. Кто подскажет, что делать?
Вот сама функция кода, из-за которой вылетает.


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(а));

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 13.7.2025, 22:10