Russian Qt Forum
Ноябрь 23, 2024, 20:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: проверить существование переменной  (Прочитано 6815 раз)
mcrads
Гость
« : Февраль 24, 2010, 20:55 »

Знаю, подобная тема поднималась, но ответа на мой вопрос там нет, потому спрошу еще раз... как проверить существует ли переменная. Пишу такой код:
Код:
QVector<QTcpSocket*> connectionList;
connectionList.resize(4);
connectionList[0] = new QTcpSocket(this);
delete connectionList[0];
if (connectionList[0] == 0) qDebug << "111";

и в результате ничего не получаю. Может я что-то недопонимаю? а макрос NULL почему-то qt не кушает, выдает ошибку ((
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Февраль 24, 2010, 21:06 »

Код:
delete connectionList[0];
connectionList[0] = 0;
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Февраль 24, 2010, 21:09 »

Знаю, подобная тема поднималась, но ответа на мой вопрос там нет, потому спрошу еще раз... как проверить существует ли переменная.
Никак, С/C++ никогда не был интерпретатором где такие вещи приняты.

Пишу такой код:
Код:
QVector<QTcpSocket*> connectionList;
connectionList.resize(4);
connectionList[0] = new QTcpSocket(this);
delete connectionList[0];
if (connectionList[0] == 0) qDebug << "111";

и в результате ничего не получаю. Может я что-то недопонимаю? а макрос NULL почему-то qt не кушает, выдает ошибку ((
То что Вы удалили connectionList[0] означает: память, на которую указывает connectionList[0] освобождена (и для всех членов QTcpSocket тоже). Но зачищать указатель язык для Вас не будет - это просто переменная и ее значение не будет изменено, что Вы с ней будете делать - решайте сами. В большинстве случаев сразу обнуляют (connectionList[0] = 0;)
Записан
mcrads
Гость
« Ответ #3 : Февраль 24, 2010, 21:13 »

хорошо, рискну, спасибо за разъяснения =)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.056 секунд. Запросов: 23.