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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2012, 10:07   #1
]tach[
Пользователь
 
Аватар для ]tach[
 
Регистрация: 21.01.2010
Сообщений: 29
По умолчанию Заполнение динамического массива

Добрый день. Начал работать с VS C++. И запутался с заполнением динамического массива.
Вот код:
Код:
int N,M;
int ***tmp;
void initArray(int n, int m)
{
	N=n;
	M=m;
    tmp = new int**[9];
    for (int i = 0; i <9; i++)
	{
		tmp[i] = new int*[n];
		for (int j = 0; j<n; j++)
		{
			tmp[i][j] = new int[m];
			for (int z = 0; z<m; z++)
			{
				srand(100);
				int ran=rand();
				tmp[i][j][z]=ran;
			}
		}
		n/=2;
		m/=2;
	}
}
Создает только один элемент массива и все.
Помогите плз
X_o

Последний раз редактировалось ]tach[; 15.04.2012 в 10:17.
]tach[ вне форума Ответить с цитированием
Старый 15.04.2012, 10:35   #2
]tach[
Пользователь
 
Аватар для ]tach[
 
Регистрация: 21.01.2010
Сообщений: 29
По умолчанию

Сори. У меня не здесь ошибка. Проблема в том что я не могу при выводе массива определить размерность этого массива по этому он выводит только один элемент.
Код:
void printArray(int** arr)
{
	int sizeX=(sizeof(arr)/sizeof(int));
	int sizeY=(sizeof(arr[0])/sizeof(int));
	for(int i=0;i<sizeX;i++)
	{
		for(int j=0;j<sizeY;j++)
		{
			std::cout<<arr[i][j]<<" ";
		}
		std::cout<<"\n";
	}
}
Как еще можно определить размер динамического массива?
X_o
]tach[ вне форума Ответить с цитированием
Старый 15.04.2012, 18:36   #3
Nuklon
Форумчанин
 
Аватар для Nuklon
 
Регистрация: 05.04.2012
Сообщений: 134
По умолчанию

Так ты думал что весь массив передаётся в функцию, нет передаётся только адрес на первый элемент массива и дальше сам указываешь размер массива до куда индексами "гулять". Нужно передавать в параметрах функции размер массива, для статического массива определяется так:
size = sizeof(arr)/sizeof(arr[0]);
Для динамического массива выделенного в куче, нужно самому указывать размер массива, ты ведь не на управляемом C++. Есть функции возвращающие размер кучи потребляемым процессом но и то для debug-отладочного режима.
Nuklon вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
объявление динамического массива katena88 Общие вопросы C/C++ 45 19.06.2012 21:53
Заполнение динамического массива Skalp Помощь студентам 25 06.12.2011 10:51
Создание и заполнение динамического списка m@dman Помощь студентам 6 17.10.2010 09:56
Заполнение динамического массива данными из файла и последующий вывод на экран vitalyisaev2 Общие вопросы C/C++ 5 08.09.2010 12:51
Заполнение динамического списка из файла KORT Помощь студентам 2 01.05.2007 22:28