Как я могу преобразовать вектор C ++ в массив C-стиля?C++

Программы на C++. Форум разработчиков
Anonymous
Как я могу преобразовать вектор C ++ в массив C-стиля?

Сообщение Anonymous »

У меня есть класс, в котором хранится массив, и мне нужно написать метод, чтобы вернуть указатель на этот массив, чтобы другие объекты могли получить доступ/изменить его. То есть, имея частный элемент bool* list , а затем распределять память в конструкторе (и освобождение этого в деструкторе). Метод тогда был очень прост: < /p>

Код: Выделить всё

bool* MyClass::getList() {
return list;
}
Теперь я решил переписать код и использовать std :: vector вместо классического массива. Проблема в том, что я также изменил приведенный выше метод как: < /p>

Код: Выделить всё

bool* MyClass::getList() {
return &(list[0]);
}
< /code>
, который, по -видимому, является стандартным способом преобразования вектора C ++ в массив C. Однако я не могу скомпилировать свой код, я получаю следующую ошибку: < /p>
error: taking address of temporary [-fpermissive]
error: cannot convert ‘std::vector::reference* {aka std::_Bit_reference*}’ to ‘bool*’ in return
может кто -нибудь помочь мне с этим и сказать, что мне делать?>

Подробнее здесь: https://stackoverflow.com/questions/182 ... tyle-array

Вернуться в «C++»