类误解和bad_alloc错误或错误的初始化

Classes misunderstanding and bad_alloc error or bad initialization?

本文关键字:错误 初始化 alloc 误解 bad      更新时间:2023-10-16

我试图读取一些值,记住它们在对象深度,然后显示它们。它显示随机值和崩溃。你能告诉我我的程序出了什么问题吗?应该是分配的问题。

#include<iostream>

){std:: cout<<p>就是Wagon.h和Stack.h

template <typename T>
class Stack
{
    T *stackArray;
    ....
    Stack();
    ~Stack();
    void push( T x );
    void show();
    void add(int M);
};
template <typename T>
Stack<T>::Stack()
{
    stackArray = NULL;
    topLevel = 0;
}
template <typename T>
Stack<T>::~Stack()
{
    if ( stackArray != NULL ) 
        delete [] stackArray;
}
void Wagon::printId()
{
    std::cout<<id<<" ";
}

和主要:

dep.addVagL(0,9);
dep.showDepot(2,2);

您可以通过在Depot构造函数中分配lines数组来开始修复代码:

Depot::Depot(int N, int M)
{
    lines = new Stack<Wagon>[N];
    for (int i=0; i<N; i++)
    {
        lines[i].add(M);
    }
}