powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / проблема с указателями
3 сообщений из 3, страница 1 из 1
проблема с указателями
    #34139714
PitBull
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос от новичка С++ .необходимо создать массив указателей на список. Класс список писать не охото, поэтому использую STL::list.

list<int> *array[100];
/* заполнение array NULL 'ами */

put(int num, int value) {

if(array[num] == NULL)
{
list<int> mlst;
mlst.push_back(value);
array[num] = &mlst;
cout << "null" << endl;
} else {
list<int> *c = array[num];
c->push_front(value); //Здесь компилятор выдаёт ошибку!!!!
cout << "not null" << endl;
}
}

Подскажите в чём моя ошибка
...
Рейтинг: 0 / 0
проблема с указателями
    #34139803
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PitBullВопрос от новичка С++ .необходимо создать массив указателей на список. Класс список писать не охото, поэтому использую STL::list.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
list<int> *array[ 100 ]; 
/* заполнение array NULL 'ами  */ 

put(int num, int value) {

	if(array[num] == NULL)
	{
		list<int> mlst;
		mlst.push_back(value);
		array[num] = &mlst;
		cout << "null" << endl;
	} else {
		list<int> *c = array[num];
		c->push_front(value);           //Здесь компилятор выдаёт ошибку!!!!
		cout << "not null" << endl;
	}
}
Подскажите в чём моя ошибкаЧто за ошибку вам выдает компилятор ?
Ошибка у вас на несколько строк выше по коду, но компилятор про нее не скажет - вы присваиваете элементу глобального массива указатель на локальную переменную. Правильно так:
Код: plaintext
1.
2.
list<int> *mlst = new list<int>;
mlst->push_back(value);
array[num] = mlst;
...
Рейтинг: 0 / 0
проблема с указателями
    #34140428
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
list<int> *array[ 100 ]; 
/* заполнение array NULL 'ами  */ 

put(int num, int value) {

	if(array[num] == NULL)
	{
		list<int> mlst;    
		mlst.push_back(value); //  :-)
		array[num] = &mlst;
		cout << "null" << endl;
	} else {
		list<int> *c = array[num]; // :-)
		c->push_front(value);        
		cout << "not null" << endl;
	}
}
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / проблема с указателями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]