2014-01-27 4 views
-7

Я хочу иметь массив переменных (может быть увеличен) массива указателей на объекты определенного класса. (Wire этого имя класса, я счетчик квазинепрерывный является указателем на провод)Массив переменных указателей C++

Wire **w; 
... 
w[i]= cw; 

Как я могу выделить память для указателей? (предположим, что cw указывает на существующий провод.)

Спасибо.

+4

Что такое ваш вопрос? – taocp

+1

Почему бы не использовать 'std :: vector'? – Barmar

+0

Вы фактически выделяете какую-либо память для 'w []'? –

ответ

3

Рассмотрим:

std::vector <std::unique_ptr <Wire>>

+0

Что мне следует включить для доступа к std :: unique_ptr? Я включил , но все еще испытываю проблемы. Я работаю с Qt Creator 2.8.1 (Qt 5.1.1) – user3237431

+0

@ user3237431: Я не знаком с этим компилятором. 'unique_ptr' был введен с C++ 11. Поддерживает ли ваш компилятор это? Если нет, вам может потребоваться использовать необработанный указатель вместо 'unique_ptr'. –

0

Наилучший подход заключается в использовании стандартного контейнера зОго :: вектора. Например

std::vector<Wire *> v; 

или какой-либо умный указатель.

Если вы не можете использовать вектор, то подход следующий

int size = SOME_VALUE; 

Wire **w = new Wire * [size]; 

w[0] = cw; 
+0

Не совсем! Избегайте необработанных указателей для первого образца, а второй - вообще. –

Смежные вопросы