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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2016, 17:21   #1
dmitrykzmn
Пользователь
 
Аватар для dmitrykzmn
 
Регистрация: 25.05.2015
Сообщений: 30
По умолчанию Массив указателей.

Добрый вечер. Совсем недавно изучаю плюсы, и дошел до указателей.
В приведенном коде есть косяк (а может и не один). Сколько не пробовал, не получается. Ошибку кидает уже при попытке внести данные в массив указателей.
Суть программки-выявить в массиве минимальное и максимальное значение.
Заранее спасибо за советы!
Код:
#include <iostream>
using namespace std;

void sort(int *mas[10])
{
	int *min = mas[0];
	int *max = mas[0];
	for (int i = 0; i < 10; i++)
	{
		if (*mas[i] <= *min) *min = *mas[i];
		if (*mas[i] >= *max) *min = *mas[i];
	}
	cout << "Min: " << *min << endl;
	delete min;
	cout << "Min adress: " << &*min << endl;
	cout << "Max: " << *max << endl;
	delete max;
	cout << "Max adress: " << &*max << endl;
	delete mas[10];
	cout << "Massive 'mas' adress: " << &*mas[10] << endl;
}
int main()
{
	int *nums[10];
	for (int i = 0; i < 10; i++)
	{
		cout << "[" << i + 1 << "]: ";
		cin >> nums[i];
	}
	sort(nums);
	delete nums[10];
	cout << "Massive 'nums' adress: " << &*nums[10] << endl;
	setlocale(0, "");
	system("pause");
	return 0;
}
dmitrykzmn вне форума Ответить с цитированием
Старый 20.01.2016, 18:17   #2
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Код:
	int *nums[10];
	for (int i = 0; i < 10; i++)
	{
		cout << "[" << i + 1 << "]: ";
		cin >> nums[i];
	}
Ну и куда "указывают" эти указатели?
Croessmah вне форума Ответить с цитированием
Старый 20.01.2016, 18:21   #3
dmitrykzmn
Пользователь
 
Аватар для dmitrykzmn
 
Регистрация: 25.05.2015
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
Код:
	int *nums[10];
	for (int i = 0; i < 10; i++)
	{
		cout << "[" << i + 1 << "]: ";
		cin >> nums[i];
	}
Ну и куда "указывают" эти указатели?
Вы про int *nums[10];?
Я подозревал, что не правильно объявил массив, но как сделать иначе не знаю
dmitrykzmn вне форума Ответить с цитированием
Старый 20.01.2016, 18:40   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Да объявили вы правильно. Вы память не выделили.
p51x вне форума Ответить с цитированием
Старый 20.01.2016, 18:48   #5
dmitrykzmn
Пользователь
 
Аватар для dmitrykzmn
 
Регистрация: 25.05.2015
Сообщений: 30
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Да объявили вы правильно. Вы память не выделили.
Не подскажете, как это правильно сделать?
dmitrykzmn вне форума Ответить с цитированием
Старый 20.01.2016, 19:11   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

А как вы узнали об указателях, если не в курсе про выделение памяти? Гуглите по словам c++ malloc и c++ new.
p51x вне форума Ответить с цитированием
Старый 20.01.2016, 19:16   #7
dmitrykzmn
Пользователь
 
Аватар для dmitrykzmn
 
Регистрация: 25.05.2015
Сообщений: 30
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А как вы узнали об указателях, если не в курсе про выделение памяти? Гуглите по словам c++ malloc и c++ new.
А, ну про new я знаю. Я не понимаю, как с синтаксической точки зрения выделить память для массива указателей
dmitrykzmn вне форума Ответить с цитированием
Старый 20.01.2016, 19:36   #8
ResourceSpace
Форумчанин
 
Аватар для ResourceSpace
 
Регистрация: 30.06.2015
Сообщений: 353
По умолчанию

В цикле, не? С:
ResourceSpace вне форума Ответить с цитированием
Старый 20.01.2016, 19:41   #9
dmitrykzmn
Пользователь
 
Аватар для dmitrykzmn
 
Регистрация: 25.05.2015
Сообщений: 30
По умолчанию

Цитата:
Сообщение от ResourceSpace Посмотреть сообщение
В цикле, не? С:
А данным действием
Код:
int *nums = new int [10];
Что будет выполняться?
dmitrykzmn вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив указателей CaXaH Общие вопросы C/C++ 11 25.09.2012 12:06
Массив указателей nattaella Компоненты Delphi 2 11.06.2011 16:40
Указатель на массив указателей на массив char'ов... SrgGld Общие вопросы C/C++ 0 19.11.2010 23:35
массив указателей RUSt88 Общие вопросы C/C++ 12 10.01.2010 11:11
массив указателей в С ++ серг Помощь студентам 1 14.12.2009 18:49