Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ddv122
Почемучка)
1235 / 295 / 16
Регистрация: 23.12.2010
Сообщений: 1,998
Записей в блоге: 1
#1

NULL указатель - C++

08.04.2012, 14:25. Просмотров 366. Ответов 0
Метки нет (Все метки)

Идея состоит в том чтобы создать класс Стек на основе односвязного списка. Строка с 0xc0000005 № 36. Не могу найти в чем проблема, может кто поопытней подскажет.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <malloc.h>
#include <windows.h>
using namespace std;
 
template <class T>
class Stack
{
private:
    struct Elem{
        T data;
        Elem *NextElemPtr;
    };
    
public:
    Elem *FirstElemPtr;
    Elem *CurrentElemPtr;
 
    Stack()
    {
        FirstElemPtr=NULL;
    };
 
    void Push(T val)
    {
        Elem* newnode = (Elem*)malloc(sizeof(Elem));
        newnode->data=val;
        if(FirstElemPtr!=NULL)GetLast()->NextElemPtr=newnode; //если список не пуст
        else FirstElemPtr=newnode;
    };
 
    Elem* GetLast()
    {
        CurrentElemPtr = FirstElemPtr;
        if(CurrentElemPtr == NULL)return NULL;
                while(CurrentElemPtr->NextElemPtr!=NULL)CurrentElemPtr=CurrentElemPtr->NextElemPtr; 
        //пока следующий элемент не НУЛЛ переношу указатель на следующий
        return CurrentElemPtr;
    };
 
    void PrintList()
    {
        CurrentElemPtr = FirstElemPtr;
        if(CurrentElemPtr == NULL)cout<<"Stek pust";
        else 
        {
            do
            {
                cout<<CurrentElemPtr->data<<" ";
            }
            while((CurrentElemPtr = CurrentElemPtr->NextElemPtr)!=NULL);
        }
    };
 
 
};
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    Stack <int> obj1;
    obj1.Push(2);
    obj1.Push(3);
    obj1.PrintList();
    system("pause");
    return 0;
}
Добавлено через 16 минут
Ошибку нашел:
после 27 строки нужно указателю на следующий элемент списка присвоить NULL . newnode->NextElemPtr=NULL;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2012, 14:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос NULL указатель (C++):

Сделать указатель на указатель NULL - C++
есть код: class Matrix { private: double **data; //нужно, чтобы в самом начале это было NULL double *b; //и это тоже было NULL ...

Указатель и NULL - C++
Почему программа выдает сообщение &quot;NOT NULL&quot; ? #include &lt;iostream&gt; using namespace std; void func(int *); int...

Как работает нулевой указатель null - C++
int x = NULL; указывает на то, что память на переменную x выделилась, но она ни на что не указывает(не имеет значения)?

Указатель при инициализации не равен NULL - C++
Здравия желаю!:) myClass myClass::operator=(myClass iniOb) { char *temp; //Указатель на копию массива из объекта iniOb ...

Почему delete не устанавливает автоматически указатель в NULL? - C++
Почему delete не устанавливает автоматически указатель в NULL?

Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? - C++
Друзья! В общем, надо реализовать связный список и понятно, последний элемент должен содержать адрес NULL, вот ломаю голову как это...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2012, 14:25
Привет! Вот еще темы с ответами:

Как получить ссылку на указатель или указатель на указатель в массиве? - C++
В процессе реализации сортировки пузырьком натолкнулся на такую проблему: как поменять значения указателей, передаваемых в функцию. Если...

Не работает код: m_web1.Navigate ('gidro.htm',0,0,NULL,NULL); - C++
Друзья помогите начинаюшему значит делаю m_web1.Navigate ('с:\gidro.htm',0,0,NULL,NULL);работает делаю m_web1.Navigate...

Функция, получающая указатель на обычную функцию, получает указатель на метод класса - C++
Здравтсвуйте. Имеется вопрос по указателям на методы класса. Допустим, есть функция( f ), которая принимает указатель на функцию и...

Функция, принимающая указатель и число байт и выделяющая память под указатель - C++
Здравствуйте. Задача легкая, но почему-то завис Нужно написать функцию, принимающую указатель и число байт и выделяющую память под...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru