初始化一个空堆栈
Initializing an empty Stack
我正在尝试初始化一个大小为 3 的空堆栈,但我的程序不允许我将 NULL 放入甚至 1 个元素中。我不确定是什么问题。该程序在尝试初始化其中一个元素时停止工作。
Stack300::Stack300 ()
{
for (int i = 0; i < 3; i++)
{
stackArray[i] = '[=10=]';
//stackArray[i] = i;
}
top = 0;
return;
}
我的 .h 文件。
#ifndef CONGERA2_H
#define CONGERA2_H
typedef float Element300;
class Stack300
{
public:
Stack300 ();
Stack300 (const int);
Stack300 (Stack300 &old);
~Stack300();
void push300(const Element300);
Element300 pop300();
void viewTB300();
void viewBT300();
private:
const int MAX_STACK = 80;
Element300 * stackArray;
int top;
};
#endif
还有我的主文件。
#include <iostream>
#include "congera2.h"
using namespace std;
int main()
{
Element300 temp1 = 1.1;
Element300 temp2 = 2.2;
Element300 temp3 = 3.3;
Stack300 myStack;
Stack300 myStack2 (myStack);
/* myStack.push300(temp1);
myStack.push300(temp2);
myStack.push300(temp3);*/
cout << "hello";
return 0;
}
在您的构造函数中,您永远不会为 'stackArray' 成员分配任何内存。以下行将完成初始化 3 个浮点整数的动态数组。
stackArray = new float[3];
然后您需要确保此内存也在析构函数中被释放。
编辑添加了一些有用的资源;这些页面很好地解释了指针和动态内存分配背后的概念:
Pointers,
Dynamic Memory
我正在尝试初始化一个大小为 3 的空堆栈,但我的程序不允许我将 NULL 放入甚至 1 个元素中。我不确定是什么问题。该程序在尝试初始化其中一个元素时停止工作。
Stack300::Stack300 ()
{
for (int i = 0; i < 3; i++)
{
stackArray[i] = '[=10=]';
//stackArray[i] = i;
}
top = 0;
return;
}
我的 .h 文件。
#ifndef CONGERA2_H
#define CONGERA2_H
typedef float Element300;
class Stack300
{
public:
Stack300 ();
Stack300 (const int);
Stack300 (Stack300 &old);
~Stack300();
void push300(const Element300);
Element300 pop300();
void viewTB300();
void viewBT300();
private:
const int MAX_STACK = 80;
Element300 * stackArray;
int top;
};
#endif
还有我的主文件。
#include <iostream>
#include "congera2.h"
using namespace std;
int main()
{
Element300 temp1 = 1.1;
Element300 temp2 = 2.2;
Element300 temp3 = 3.3;
Stack300 myStack;
Stack300 myStack2 (myStack);
/* myStack.push300(temp1);
myStack.push300(temp2);
myStack.push300(temp3);*/
cout << "hello";
return 0;
}
在您的构造函数中,您永远不会为 'stackArray' 成员分配任何内存。以下行将完成初始化 3 个浮点整数的动态数组。
stackArray = new float[3];
然后您需要确保此内存也在析构函数中被释放。
编辑添加了一些有用的资源;这些页面很好地解释了指针和动态内存分配背后的概念: Pointers, Dynamic Memory