Когда я запускаю свою программу, она отлично помещает числа в массив.Но когда он их выталкивает, а затем печатает, я получаю номера мусора.Проблема связана с моей основной функцией?Или я неправильно инициализировал свой массив в классе Stack?Сначала у меня были некоторые проблемы с конструктором, но после некоторых корректировок он работал нормально.
Есть ли что-то, что выделяется из-за того, почему я получаю номера мусора после запуска моего скрипта?
Спасибо
#include<iostream>
#include<cstdlib>
#ifndef MYSTACK_H
#define MYSTACK_H
#include<iostream>
#include<new>
using namespace std;
class MyStack
{
private:
int *list;
int top;
int max;
public:
MyStack(int m)
{
int max = m;
list = new int[max];
int top = -1;
}
~MyStack()
{
delete[] list;
}
int push(int);
int pop();
int peek(int &a) const;
};
int MyStack::push(int a)
{
if (top < max - 1)
{
top = top + 1;
list[top] = a;
return 0;
}
return -1;
}
int MyStack::pop()
{
if (top > -1)
{
top = top - 1;
return 0;
}
return -1;
}
int MyStack::peek(int &a) const
{
if (top > -1)
{
return(list[top]);
return 0;
}
return -1;
}
#endif
int main()
{
MyStack m(5);
for (int i = 0; i < 6; i++)
{
int x = 1 + rand() % 100;
cout << x << "\t";
m.push(x);
}
cout << "\n";
for (int i = 0; i < 6; i++)
{
int x;
m.peek(x);
cout << x << "\t";
m.pop();
}
cout << "\n";
system("pause>nul");
}