Друзья, помогите, может я чего-то не понимаю, но есть вот такой кусок кода:
| Код | void ZConnection::connect(const string &hostname, int portnum){
ZOOM_connection_connect(this->zc, hostname.c_str(), portnum); int errcode; const char *errmsg; // unused: carries same info as `errcode' const char *addinfo; if ((errcode = ZOOM_connection_error(this->zc, &errmsg, &addinfo)) != 0) { string emessage(errmsg); string eaddinfo(addinfo); string message = emessage + " " + eaddinfo; throw ZConnectionException(message, errcode); }
}
|
Интересует меня следующая проблема, как освободить память из-под указателей errmsg и addinfo. Эти указатели заполняются в функции ZOOM_connection_error информацией об ошибке. Далее происходит формирование исключения на основе этой информации и выброс его. Что происходит с нашими указателями? Как я понимаю, при таком положении дел (как в листинге) происходит утечка памяти? |