Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2012, 18:26   #1
Smooth
Новичок
Джуниор
 
Регистрация: 25.05.2012
Сообщений: 1
По умолчанию Динамический массив. Что-то не сходится.

Код:
#include <iostream> 
#include <iomanip>
using namespace std; 
struct Array3D
{ 
 double** coordinates;   // указатель на массив
 int first_coordinate; // столбцы
 int second_coordinate; // строки
 int third_coordinate; // не знаю как это называется
}; 
// Выделение свободной памяти для массива
void allocate(int first_coordinate, int second_coordinate, int third_coordinate, Array3D& Vectors) 
{ 
 Vectors.coordinates = new double*[first_coordinate]; 
 for (int i = 0; i < first_coordinate; ++i) 
  Vectors.coordinates[i] = new double[second_coordinate]; 
 for (int i = 0; i < first_coordinate; ++i) 
  Vectors.coordinates[i] = new double[third_coordinate];
 Vectors.first_coordinate = first_coordinate; 
 Vectors.second_coordinate = second_coordinate;
 Vectors.third_coordinate = third_coordinate;
} 
// Освобождение выделенной для массива памяти
void deallocate(Array3D& Vectors) 
{ 
 for (int i = 0; i < Vectors.first_coordinate; ++i) 
  delete[] Vectors.coordinates[i]; 
 delete[] Vectors.coordinates; 
} 
int main() 
{ 
 Array3D Vectors; 
 allocate(5, 5, 5, Vectors); 
 for (int i = 0; i < Vectors.first_coordinate; ++i) 
 { 
  for (int j = 0; j < Vectors.second_coordinate; ++j) 
  { 
	  for (int k = 0; k < Vectors.third_coordinate; ++k)
	  {
   Vectors.coordinates[i][j][k] = (i + 1) * (j + 1)*(k + 1); 
   cout << setw(4) << (i + 1) * (j + 1)*(k + 1); 
	  }
  } 
  cout << endl; 
 } 
 deallocate(Vectors); 
 return 0; 
}
Выдает единственную ошибку:vector.cpp(40) error C2109: для индекса требуется массив или указатель. Просто объясните, что не так? Исправлять не нужно.

Последний раз редактировалось Smooth; 25.05.2012 в 18:29. Причина: забыла
Smooth вне форума Ответить с цитированием
Старый 25.05.2012, 19:23   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

аа господи вот!
Цитата:
Код:
double** coordinates;   // указатель на массив
Делайте так
Код:
double*** coordinates;
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303

Последний раз редактировалось Hacker19_90; 25.05.2012 в 19:27.
Hacker19_90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан динамический массив который в водится с клавиатуры и заполняется рандомом. Вывести на экран то , что на фото Richik123 Паскаль, Turbo Pascal, PascalABC.NET 5 23.04.2012 00:20
Динамический массив, массив указателей alexalisa Паскаль, Turbo Pascal, PascalABC.NET 4 22.04.2011 21:33
Динамический массив - или всё таки не динамический? vedro-compota Общие вопросы C/C++ 30 10.12.2010 23:22
VB. Что за динамический массив zxspec Помощь студентам 7 26.09.2009 19:26