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

Я использую 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?

0

Решение

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

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

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

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

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

1

Другие решения

Других решений пока нет …