Рассмотрим следующие коды C ++:
using namespace std;
vector<char*> aCharPointerRow;
aCharPointerRow.push_back("String_11");
aCharPointerRow.push_back("String_12");
aCharPointerRow.push_back("String_13");
for (int i=0; i<aCharPointerRow.size(); i++) {
cout << aCharPointerRow[i] << ",";
}
aCharPointerRow.clear();
После строки aCharPointerRow.clear();
все элементы указателя символа в aCharPointerRow
должны быть удалены.
Есть ли утечка памяти в приведенном выше коде C ++? Нужно ли мне явно освобождать память, выделенную для строк char *? Если да, то как?
Спасибо за любое предложение.
vector
будет обрабатывать свои собственные распределения. - person jalf   schedule 13.03.2012vector<const char*>
. Указательchar*
допускает модификацию, но"String_11"
является строковым литералом и, следовательно,const
. - person MSalters   schedule 13.03.2012