Здравствуйте, sidorov18, Вы писали:
S>Здравствуйте, AlexandrRya, Вы писали:
AR>>да-да. Я про delete[] uKeys. Вопрос в том, что в коде
AR>>AR>>APT_UString *uKeys = new APT_UString[keyNum]; //выделяем память под массив, вызываем конструктор по умолчанию для каждого объекта
AR>>for (int i=0; i < keyNum; i++){
AR>> uKeys[i] = APT_ConvertFromUTF8String(*keys[i]);//функция возвращает объект, вызывается конструктор копирования и временный объект удаляется.
AR>>}
AR>>delete[] uKeys;//вызываем деструкторы для каждого объекта + освобождаем память
AR>>
AR>>есть утечки памяти или нет?
AR>>Про различные библиотеки типа Boost и даже std я знаю. Но использовать их не хочу: это компонент для другой программы, которая ставится на серверы под совершенно различные платформы. И не хочется потом бороться с тонкостями реализации std в разных системах, а уж тем более компилировать boost ради сишника размером в пару килобайт.
S>хм
S>А где может быть утечка?
S>вроде все нормально.
S>разве что что-то хитрое в реализации APT_UString
S>что касается boost — компилировать как отдельную либу ее, в большинстве случаев, не надо.
S>что касается std — там вроде crt только используется внутри — всякие strlen и т.п. эти зависимости решаются с помощью смены /MD флага на /MT. Только что попробовал с одним вектором собрать консольное приложение — размер увеличивается на 40кб
А где может быть утечка?
Ок. Спасибо за ответ. По поводу флагов: /MD и /MT: собираться код будет под HP-UX его встроенным aCC, и под Redhat Linux его gcc.