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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2009, 11:20   #1
Matr1x
Студент
Пользователь
 
Аватар для Matr1x
 
Регистрация: 10.11.2009
Сообщений: 49
По умолчанию Динамические массивы

Привет всем, с указателями плохо дружу, а тут без них никак, объясните пожалуйста закомментированные строчки
Код:
int main()
{
	cout<<"Vvedite kol-vo strok i stolbcov:"<<endl;
	int str,sto;
	cin>>str>>sto;	
	cout<<"Massive do : "<<endl;
	int **mass; // непонятно совсем
	mass=new int*[str]; // как понимаю выделение памяти под строки, но почему используется указатель?
	for (int i=0;i<str;i++)
	{
		mass[i]=new int[sto]; // выделение памяти под столбики..? но тут указателя нету.. непонятно
	}
	for (int i=0;i<str;i++)
	{
		for (int k=0;k<sto;k++)
		{
			mass[i][k]=rand()%10;
			cout<<mass[i][k]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
заранее благодарен)
Matr1x вне форума Ответить с цитированием
Старый 07.12.2009, 11:32   #2
forsaken66
Куды бечь?
Форумчанин
 
Аватар для forsaken66
 
Регистрация: 05.10.2009
Сообщений: 104
По умолчанию

Тут была такая тема уже, я создавал.

http://www.programmersforum.ru/showthread.php?t=65109
Не хватало всего одного байта. Да-да, того самого, что из восьми бит состоит.
forsaken66 вне форума Ответить с цитированием
Старый 07.12.2009, 11:56   #3
Matr1x
Студент
Пользователь
 
Аватар для Matr1x
 
Регистрация: 10.11.2009
Сообщений: 49
По умолчанию

спасибо, вот тут всеравно не понял
Код:
int **mass;
указатель на указатель, смысла не улавливаю)
Matr1x вне форума Ответить с цитированием
Старый 07.12.2009, 12:38   #4
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

может вам навеет то, что массив двумерный
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 07.12.2009, 12:49   #5
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

int **mass;
Двойной указатель, в данном случае двойной указатель на двумерный динамический массив.


Словам объяснить сложно (лучше бы на картинке).
mass=new int*[str];создается строка для указателей размером str.

mass[i]=new int[sto];
В первый элемент выше объявленной строки вводится указатель на первую строку массива из sto столбцов

mass[i]=new int[sto];
Во второй элемент выше объявленной строки вводится указатель на вторую строку массива из sto столбцов

.......
В str- ом элементе содержится указатель str-ую строку массива из sto столбцов.

Очень грубо и неточно но примерно так.
Цитата:
mass[i]=new int[sto]; // выделение памяти под столбики..? но тут указателя нету.. непонятно
указатель **mass, уже объявлен
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол

Последний раз редактировалось atenon; 07.12.2009 в 13:17.
atenon вне форума Ответить с цитированием
Старый 07.12.2009, 13:38   #6
Matr1x
Студент
Пользователь
 
Аватар для Matr1x
 
Регистрация: 10.11.2009
Сообщений: 49
По умолчанию

всем пасиба большое, примерно разобрался, ща все опробуем)
Matr1x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические массивы С++ LoRD_ОЛЕДЖАН Помощь студентам 13 21.07.2009 15:16
Динамические массивы на С++ LoRD_ОЛЕДЖАН Помощь студентам 3 14.07.2009 13:43
динамические массивы в Си aka_faith Помощь студентам 1 24.05.2009 00:56
Динамические массивы на си Sha-sha Помощь студентам 1 19.05.2009 18:55
динамические массивы funky Общие вопросы C/C++ 3 12.05.2009 01:54