Главная Новые темы Список тем Задать вопрос Поиск  

Форум "C++" (архив)


С++, его предки и потомки


 #0 VictorT © 15.04.04 12:14:10 - 16.04.04 09:03:39

Что-то глюк не могу найти, вроде всё правильно... может кто свежим взглядом увидит...



Ошибка состоит в том, что в результате в массиве old_top есть одинаковые числа, а их не должно быть.

char CDeepBrowserDlg::LoadTopic()
{
    m_StatusBar.SetText(" Поиск веток без начала.", 2, 0);
    CDWordArray old_top;
    CDWordArray last_msg_top;
    long n = m_index_msg.GetSize();
    long m = m_index_top.GetSize();
    CDBF msg("db/msg.dbf");
    for (long i = 0; i < n ; i++) {
        if (m_parentid[i] == 0)
            continue;
        char flag = 0;
        // Проверка, или в массиве old_top уже есть такой номер (почему-то не работает)
        for (long k = 0; k < old_top.GetSize(); k++) {
            if (m_parentid[i] == old_top[k])
                flag = 1;
                break;
        }
        if (flag == 0) {
            for (long j = 0; j < m; j++) {
                if (m_parentid[i] == m_rootid_top[j]) {
                    flag = 1;
                    break;
                }
            }
            if (flag == 0) {
                old_top.Add(m_parentid[i]);
                last_msg_top.Add(m_rootid_msg[i]);
            }
        }
    }
. . . . . . . . . . . . . . . . вырезано . . . . . . . . . . . . . . . .
Цитата

 #1 VictorT © 15.04.04 12:29:43

Спасибо Мистику, оказывается скобки пропустил:
      // Проверка, или в массиве old_top уже есть такой номер (почему-то не работает)
       for (long k = 0; k < old_top.GetSize(); k++) {
           if (m_parentid[i] == old_top[k]) {
               flag = 1;
               break;
           }
       }
 #2 dataMaster © 15.04.04 12:32:10

неуверен, но...   может фигурные скобки забыл в цикле?

if (m_parentid[i] == old_top[k]) {
        flag = 1;
        break;  }
 #3 .craZy © 16.04.04 02:57:00

> VictorT © 15.04.04 13:29
угу... а внешние фигурные скобки можна убрать - они там нафиг не нужны. (конструкция "if" рассматривается как один оператор)
тогда б и ошбку сразу заметил... а так она "замаскировалась" :)
 #4 VictorT © 16.04.04 09:03:39

>   [3] .craZy ©
Угу, можно. А вообще то правилом хорошего тона есть всегда ставить фигурные скобки. А то часто бывает, что вылазят ошибки, когда к примеру в IF стоит один оператор, не обрамлённый скобками, что правильно с точки зрения синтаксиса, а потом добавляешь туда ещё оператор, а скобки поставить забываешь, вот и вылезает бяка (как собственно у меня и получилось).
Вот только почему-то я не всегда следую этому правилу :(




  • Тема находится в архиве

    Написать ответ

    Имя: Регистрация HTML?
    smiles смайлики
    Потом перейти в:    
    паутина



      ©  webest.net, 2002-2007  

    top.mail.ru
    » Бесплатный счетчик посещений
    » Рейтинг сайтов