2013-11-22 2 views
0

Я использую C++ Builder XE4 для Windows7 Professional (32 бит).Как узнать, был ли введен TStringList

У меня есть вопрос о TStringList;

Что я хотел бы сделать, так это узнать, была ли новая переменная TStringList введена или нет, чтобы предотвратить использование метода Add() для новичков TStringList;

Я думал, что проверка NULL может работать, но это не так.

TStringList *list; 
// list = new TStringList(); // someone commented out by mistakes 

if (list == NULL) { 
    ShowMessage(L"NULL"); 
} else { 
    ShowMessage(L"not empty"); 
} 
return; 

В приведенном выше коде показан диалог «не пустой».

Что такое стандартный способ проверки нового или не новичка TStringList?

ответ

1

Очень обычным явлением является c/C++, чтобы инициализировать указатели до NULL и иметь их равными нулю, если они не указывают на что-то действительное.

Таким образом, ваш оператор if является очень обычным явлением и соответствующим кодом.

Однако это требует инициализации вашей переменной.

Если не объявлено в области глобального/файла, строка: TStringList * list; не инициализирует переменную до какого-либо определенного значения - это оставляет ее указывая на случайное дерьмо.

Необходимо изменить его на TStringList * list = NULL; (или подобные, некоторые люди не любят «NULL»)

+0

Большое спасибо. Как вы предположили, я буду использовать 'TStringList * list = NULL' в объявлении. Затем я проверяю NULL переменных. – sevenOfNine

Смежные вопросы