Форум программистов, компьютерный форум CyberForum.ru

Стек и освобождение памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переход из арифметического представления в функциональное представление http://www.cyberforum.ru/cpp-beginners/thread270378.html
Переход из арифметического представления в функциональное представление,нужно написать на C++ Builder 6 ? Я к сожалению не знаю как это делать, а сдать нужно... Заранее спасибо!
C++ подскажите книгу или какой-либо другой источник Здравствуйте.Хочу попробывать,в учебных целях,написать свои методы подсоединения к СУБД(например провайдер как в Ado.Net,метод наподобе Connection и других.Разработать провайдер наподобе ODBC).Понял что для этого нужно подробно изучить работу сетевых протоколов TCP/IP и других протоколов,а также сетевых технологий. Пожалуйста,подскажите какую-нибудь хорошую и доступную литературу для ришения... http://www.cyberforum.ru/cpp-beginners/thread270260.html
Задание с текстовым файлом. C++
помогите, пожалуйста написать прогу. определить баланс скобок ( ) { } в программе на си есть пример с морзе http://zalil.ru/30798712
C++ Статические массивы
int a; cout << sizeof(a) << endl; cout << a << endl; Добрый день. Почему выводится, что sizeof(a)=16 байт. a же это адрес, т.е. = 4 байта, а не размер массива. P.S. буду рад за направление на литературу по памяти, где есть объяснения по стэкам, кучам и т.д.
C++ Как сделать так чтобы простейшая программа запускалась сначало http://www.cyberforum.ru/cpp-beginners/thread270009.html
Предположим есть самая простая программа: #include <iostream> using namespace std; #include <cmath> int main() { double c; cout << "Enter a number of points: "; cin >> c; double wer = c - 1;
C++ realloc Столкнулся с проблемой при значениях nStgElm близких к 1000 происходит ошибка выеления памяти WIN32_FIND_DATA * pDATA = (WIN32_FIND_DATA *)malloc(sizeof(WIN32_FIND_DATA)); pDATA = (WIN32_FIND_DATA *)realloc ( (void *)pDATA, sizeof(WIN32_FIND_DATA)*(2 + (nStgElm++)) ); Кто знает другой механизм динамического выделения памяти???Число элементов заранее не известно и... подробнее

Показать сообщение отдельно
gGrn-7DA
мну довольно <(-__-)l
 Аватар для gGrn-7DA
203 / 192 / 1
Регистрация: 17.01.2010
Сообщений: 2,391
Завершенные тесты: 1
06.04.2011, 17:24  [ТС]     Стек и освобождение памяти
Нет я стек с 1 элементом хочу записать в пустой стек стеков.
_st - всегда будет иметь хотя бы один элемент в себе..


разобрался
C++
1
2
3
    stack<stack<unsigned int> *> *temp=new stack<stack<unsigned int> *>();
    stack<unsigned int> *_st=new stack<unsigned int>();
    temp->in(_st);
так работает...хз почему)

Добавлено через 1 час 27 минут

Не по теме:

Как же жить без ошибок? можно, но невозможно - обязательно ошибешься...



мой стек съедает первую половину элементов.
то есть такой код:
C++
1
2
3
4
5
6
7
    stack<int> *st=new stack<int>();
    for(int i=0;i<15;i++)
    st->in(i);
    unsigned int g;
    int *m=st->Release(&g);
    for(int j=0;j<g;j++)
    std::cout << m[j] << " ";
выводит:
C++
1
14 13 12 11 10 9 8 7 0 0 0 0 0 0 0
а должен:
C++
1
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Как объяснить стеку, что есть чужие байты не хорошо?(

Добавлено через 1 минуту
ну и сам файл stack.h
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
68
69
70
71
72
73
74
75
76
77
78
79
80
template <class Type>
class Member{
public:
    Member(Type value, Member<Type> **member);
    ~Member();
    Type GetValue(){
        return _value;
    }
    Member<Type> *_member;
private:
    Type _value;
};
 
template <class Type> class stack{
public:
    stack();
    ~stack();
    int count();
    int in(Type value);
    Type out();
    Type see();
    Type * Release(unsigned int *length);
private:
    Member<Type> *_member;
    unsigned int _count;
 
};
 
//-----=---==-=== class Member ===-==---=-----
 
template <class Type> Member<Type>::Member(Type value, Member<Type> **member){
    _value=value;
    _member=*member;
}
 
template <class Type> Member<Type>::~Member(){
    delete _member;
}
 
//-----=---==-=== class stack ===-==---=-----
 
template <class Type> stack<Type>::~stack(){
    delete _member;
}
 
template <class Type> stack<Type>::stack(){
    _count=0;
    _member=NULL;
}
 
template <class Type> int stack<Type>::count(){
    return _count;
}
 
template <class Type> int stack<Type>::in(Type value){
    Member<Type> *member=new Member<Type>(value, &_member);
    _member=member;
    return ++_count;
}
 
template <class Type> Type stack<Type>::out(){
        if(_count>0)_count--;
        Type value=_member->GetValue();
        Member<Type> *member=_member->_member;
        _member->_member=NULL;
        delete _member;
        _member=member;
        return value;
}
 
template <class Type> Type stack<Type>::see(){
    return _member->GetValue();
}
 
template <class Type> Type * stack<Type>::Release(unsigned int *length){
    Type *array=new Type[*length=_count];
    for(int i=0;i<_count;i++)
        array[i]=this->out();
    return array;
}
Добавлено через 2 минуты
вот где ошибка( внимательнее надо быть)
C++
1
    for(int i=0;i<_count;i++)//77 строка
 
Текущее время: 18:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru