2016-06-03 3 views
-3

Итак, я хочу поместить объект в 2-мерный массив. Я сделал это. Я хотел 26 строк и 30 столбцов. Всякий раз, когда я добавляю. Например, array[0][0] = - к некоторому объекту класса Object. Он установил бы array[0][1], array[0][2], array[0][3] и так далее к тем же деталям array[0][0]. Я хочу, чтобы объект находился точно там, где я его помещал, а не на остальную часть его строки. Я неправильно распределяю память?Создание 2-мерного массива объектов

class Object{ 
    string Name 
} 

main()... 
Object** array= new Object*[26]; 
for (int i = 0; i < 26; ++i) 
{ 
    array[i] = new Object[30]; 
} 
+1

Почему массив имеет как профиль, так и тип объекта ... – HadeS

+0

Изменил извините, что хотел обобщить слова, забыл изменить его. – chickenninja565

+0

ваше распределение должно быть прекрасным, но вы не сможете делать такие вещи, как 'array [1] [2]'. Почему бы вам просто не сделать массив объектов [26] [30]; 'вместо этого? –

ответ

0

Да, это выглядит правильно. Единственное, что нужно отметить, это то, что это массив указателей (или динамического массива). Не забудьте очистить память после этого. Кроме того, с более чем 26x30, производительность не очень хорошая. Старайтесь быть творческими.

+0

Когда я распечатываю память array[0][1] and array[0][2], они точно такие же и т. Д. Генерируют одни и те же данные. Почему это? Я сделал это с укусами и отлично справился. – chickenninja565

+0

Здесь вы используете динамический массив. Вы печатаете адрес указателя. Попробуйте этот «массив [0] [1] -> name» и посмотрите, что произойдет. –