Russian Qt Forum

Qt => Общие вопросы => Тема начата: mcrads от Февраль 24, 2010, 20:55



Название: проверить существование переменной
Отправлено: 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 не кушает, выдает ошибку ((


Название: Re: проверить существование переменной
Отправлено: Пантер от Февраль 24, 2010, 21:06
Код:
delete connectionList[0];
connectionList[0] = 0;


Название: Re: проверить существование переменной
Отправлено: Igors от Февраль 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;)


Название: Re: проверить существование переменной
Отправлено: mcrads от Февраль 24, 2010, 21:13
хорошо, рискну, спасибо за разъяснения =)