строка — TStringList C ++ Builder Нарушение прав доступа

Я пытаюсь получить доступ к конкретным элементам в TStringList только если они существуют.

if (myTStringList->Count > -1) {
strSomeString = myTStringList->Strings[0];
}

Почему это дает мне нарушение прав доступа и как я могу его устранить?

0

Решение

В списке есть только строка, если Count больше 0. Вы проверяете, больше ли это -1. Измените это на:

if ( myTStringList->Count > 0 )
{
strSomeString = myTStringList->Strings[0];
}
1

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

Две проблемы:

  1. Откуда вы знаете myTStringList даже существует и не указывает на NULL?
  2. Почему вы проверяете, является ли счет больше минус один? если список пуст, счет будет 0.
0