Как узнать, был ли обновлен TStringList

0

Я использую C++ Builder XE4 для Windows7 Professional (32 бит).

У меня есть вопрос о 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?

Теги:
c++builder
c++builder-xe4

1 ответ

1
Лучший ответ

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

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

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

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

Вам нужно изменить его на TStringList * list = NULL; (или подобные, некоторые люди не любят "NULL")

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню