Как я могу преобразовать вектор 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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